# frozen_string_literal: true # openAPI documentation for user endpoint class OpenAPI::V1::UsersDoc < OpenAPI::V1::BaseDoc resource_description do short 'Users' desc 'Users of Fab-manager' formats FORMATS api_version API_VERSION end include OpenAPI::V1::Concerns::ParamGroups doc_for :index do api :GET, "/#{API_VERSION}/users", 'Users index' description 'Users index, with optional pagination. Order by *created_at* descendant.' param_group :pagination param :email, [String, Array], optional: true, desc: 'Filter users by *email* using strict matching.' param :user_id, [Integer, Array], optional: true, desc: 'Filter users by *id* using strict matching.' param :created_after, DateTime, optional: true, desc: 'Filter users to accounts created after the given date.' example <<-USERS # /open_api/v1/users?page=1&per_page=4 { "users": [ { "id": 1746, "email": "xxxxxxx@xxxx.com", "created_at": "2016-05-04T17:21:48.403+02:00", "external_id": "J5821-4" "full_name": "xxxx xxxx", "first_name": "xxxx", "last_name": "xxxx", "gender": "man", "organization": true, "address": "2 impasse xxxxxx, BRUXELLES", "group": { "id": 1, "name": "standard, association", "slug": "standard" } }, { "id": 1745, "email": "xxxxxxx@gmail.com", "created_at": "2016-05-03T15:21:13.125+02:00", "external_id": "J5846-4" "full_name": "xxxxx xxxxx", "first_name": "xxxxx", "last_name": "xxxxx", "gender": "woman", "organization": true, "address": "Grenoble", "group": { "id": 2, "name": "étudiant, - de 25 ans, enseignant, demandeur d'emploi", "slug": "student" } }, { "id": 1744, "email": "xxxxxxx@gmail.com", "created_at": "2016-05-03T13:51:03.223+02:00", "external_id": "J5900-1" "full_name": "xxxxxxx xxxx", "first_name": "xxxxxxx", "last_name": "xxxx", "gender": "man", "organization": false, "address": "21 rue des xxxxxx", "group": { "id": 1, "name": "standard, association", "slug": "standard" } }, { "id": 1743, "email": "xxxxxxxx@setecastronomy.eu", "created_at": "2016-05-03T12:24:38.724+02:00", "external_id": "P4172-4" "full_name": "xxx xxxxxxx", "first_name": "xxx", "last_name": "xxxxxxx", "gender": "woman", "organization": false, "address": "147 rue xxxxxx, 75000 PARIS, France", "group": { "id": 1, "name": "standard, association", "slug": "standard" } } ] } # /open_api/v1/users?user_id[]=1746&user_id[]=1745 { "users": [ { "id": 1746, "email": "xxxxxxxxxxxx", "created_at": "2016-05-04T17:21:48.403+02:00", "external_id": "J5500-4" "full_name": "xxxx xxxxxx", "first_name": "xxxx", "last_name": "xxxxxx", "gender": "man", "organization": true, "address": "38100", "group": { "id": 1, "name": "standard, association", "slug": "standard" } }, { "id": 1745, "email": "xxxxxxxxx@gmail.com", "created_at": "2016-05-03T15:21:13.125+02:00", "external_id": null, "full_name": "xxxxx xxxxxx", "first_name": "xxxx", "last_name": "xxxxxx", "gender": "woman", "organization": true, "address": "", "group": { "id": 2, "name": "étudiant, - de 25 ans, enseignant, demandeur d'emploi", "slug": "student" } } ] } USERS end end