# `CRI Accounts (Back-End / Server-Side)` # `Cri Account docs` <strong > CRI Accounts is responsible for handling the client's personal and professional informations. The backend handles the authentication process as well as querying and modifying users informations. </strong> # `Contents` <details> <summary><strong>Table of Contents</strong></summary> * [Queries](#Queries) * [Fetch list of users by id and applicationId](#fetchBulkUserByIds) * [fetch User By id](#fetchUserById) * [fetch current user data ](#fetchMyData) * [check Email Verification](#checkEmailVerification) * [Mutations](#Mutations) * [Exchange OAuthCode For AccessToken](#ExchangeOAuthCodeForAccessToken) * [Refresh Access Token](#refreshAccessToken) * [Change Password](#ChangePassword) * [Intro Setup Personal Informations](#introSetupPersonalInformations) * [Intro Setup Contact Informations](#introSetupContactInformations) * [Intro Setup Professional Informations](#introSetupProfessionalInformations) * [Update User](#updateUser) * [Update User Contact](#updateUserContact) * [Schema](#SCHEMA) * [Inputs](#inputs) * [Update Intro Professional Information](#UpdateIntroProfessionalInformation) * [Update Intro User Contact Input](#UpdateIntroUserContactInput) * [Update Intro User Input](#UpdateIntroUserInput) * [Update Professional Information](#UpdateProfessionalInformation) * [Update User Contact Input](#UpdateUserContactInput) * [Update User Input](#UpdateUserInput) * [Change Password Input](#ChangePasswordInput) * [Types](#Types) * [ProfessionalInformation](#ProfessionalInformation) * [EmailVerification](#EmailVerification) * [Token](#Token) * [User](#User) </details> # `Test URLs` ### Front-end https://cri-accounts-dev.netlify.app/ ### `Back-end` https://cri-accounts-dev.lifesaloe.com/ # `Endpoint` /graphql ## `Queries` ### `fetchBulkUserByIds` ``` fetchBulkUserByIds(p applicationId: String! data: [String!]! ): [User!]! ``` #### `arguments` applicationId: String *required! data: [String] *required! < list of users ids > #### `headers` Authorization : Bearer <TOKEN> #### `Responses` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128561; ` 401 Unauthorized` ```json { "errors": [ { "message": "Unauthorized", "locations": [ { "line": 2, "column": 3 } ], "path": [ "fetchBulkUserByIds" ], "extensions": { "code": "INTERNAL_SERVER_ERROR", "exception": { "response": { "statusCode": 401, "message": "Unauthorized" }, "status": 401, "message": "Unauthorized" } } } ], "data": null } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; ` 400 bad Request` ```json { "error": { "errors": [ { "message": "Field \"professional_information\" of type \"ProfessionalInformation\" must have a selection of subfields. Did you mean \"professional_information { ... }\"?", "locations": [ { "line": 22, "column": 5 } ], "extensions": { "code": "GRAPHQL_VALIDATION_FAILED" } } ] } } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `200 OK ` ```json { "data": { "fetchBulkUserByIds": [ { "adresse": null, "applications": "[\"593ef07e-9c7e-424b-974a-143f9c465cdc\"]", "avatar": "https://ui-avatars.com/api/?name=XXX+XXXx", "birthdate": "2021-06-02T12:00:00.000Z", "category": "Créateur d’entreprise", "commune": null, "country": null, "createdAt": "2021-06-17T19:47:31.196Z", "email": "email@XXXX.com", "firstname": "Jhon", "legal_identification": "JDXXXXXX", "id": "b298dcbb-3f19-44db-950e-e3facff772d9", "lastname": "Snow", "nationality": null, "onetime_setup": true, "phonenumber": null, "province": null, "updatedAt": "2021-06-23T15:44:15.276Z", "study_level": "Primaire" } ] } } ``` ### `fetchUserById` ``` fetchUserById( data: String! ): User! ``` #### `arguments` data: userId *required! #### `headers` Authorization : Bearer <TOKEN> #### `Responses` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128561; `401 Unauthorized` ```json { "errors": [ { "message": "Unauthorized", "locations": [ { "line": 2, "column": 3 } ], "path": [ "fetchUserById" ], "extensions": { "code": "INTERNAL_SERVER_ERROR", "exception": { "response": { "statusCode": 401, "message": "Unauthorized" }, "status": 401, "message": "Unauthorized" } } } ], "data": null } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `400 bad Request` ```json { "error": { "errors": [ { "message": "Cannot query field \"applicationssdf\" on type \"User\". Did you mean \"applications\"?", "locations": [ { "line": 4, "column": 5 } ], "extensions": { "code": "GRAPHQL_VALIDATION_FAILED" } } ] } } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `200 OK ` ```json { "data": { "fetchUserById": [ { "adresse": null, "applications": "[\"593ef07e-9c7e-424b-974a-143f9c465cdc\"]", "avatar": "https://ui-avatars.com/api/?name=XXX+XXXx", "birthdate": "2021-06-02T12:00:00.000Z", "category": "Créateur d’entreprise", "commune": null, "country": null, "createdAt": "2021-06-17T19:47:31.196Z", "email": "email@XXXX.com", "firstname": "Jhon", "legal_identification": "JDXXXXXX", "id": "b298dcbb-3f19-44db-950e-e3facff772d9", "lastname": "Snow", "nationality": null, "onetime_setup": true, "phonenumber": null, "province": null, "updatedAt": "2021-06-23T15:44:15.276Z", "study_level": "Primaire" } ] } } ``` ### `fetchMyData` ``` me : User ``` #### `arguments` <none> #### `headers` Authorization : Bearer <TOKEN> #### `Responses` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128561; `401 Unauthorized` ```json { "errors": [ { "message": "Unauthorized", "locations": [ { "line": 2, "column": 3 } ], "path": [ "me" ], "extensions": { "code": "INTERNAL_SERVER_ERROR", "exception": { "response": { "statusCode": 401, "message": "Unauthorized" }, "status": 401, "message": "Unauthorized" } } } ], "data": null } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `200 OK ` ```json { "data": { "me": { "id": "b298dcbb-3f19-44db-950e-e3facff772d9", "firstname": "jhon", "lastname": "smith", "avatar": "https://ui-avatars.com/api/?name=Abdelouahd+Aithamd", "email": "jhon@smith.com", "phonenumber": null, "birthdate": null, "__typename": "User" } } } ``` ### `checkEmailVerification` ``` checkEmailVerification: EmailVerification! ``` #### `arguments` <None> #### `headers` Authorization : Bearer <TOKEN> #### `Responses` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128561; `401 Unauthorized` ```json { "errors": [ { "message": "Unauthorized", "locations": [ { "line": 2, "column": 3 } ], "path": [ "checkEmailVerification" ], "extensions": { "code": "INTERNAL_SERVER_ERROR", "exception": { "response": { "statusCode": 401, "message": "Unauthorized" }, "status": 401, "message": "Unauthorized" } } } ], "data": null } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `200 OK ` ```json { "data": { "checkEmailVerification": { "isVerified": false } } } ``` ## `Mutations` ### `ExchangeOAuthCodeForAccessToken` ``` exchangeOAuthCodeForAccessToken( code: String! redirectUrl: String! ): Token! ``` #### `arguments ` code: String // oAuth Code redirectUrl: string #### `headers` <none> #### ` Responses` &#128075; Schema @[Token Schema ](#Token) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `400 bad Request` ```json { "errors": [ { "message": "Unexpected error value: { statusCode: 400, exception: { error: \"invalid_request\", error_description: \"Invalid Authorization Code\", error_reason: \"auth_code_not_found\" } }", "locations": [ { "line": 2, "column": 3 } ], "path": [ "exchangeOAuthCodeForAccessToken" ], "extensions": { "code": "INTERNAL_SERVER_ERROR" } } ], "data": null } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `200 OK ` ```json { "data": { "exchangeOAuthCodeForAccessToken": { "accessToken": ACCESS_TOKEN, "accessToken": REFRESH_TOKEN // default : null } } ``` ### `refreshAccessToken` ``` refreshAccessToken( token: String! ): Token! ``` #### `arguments ` TOKEN #### `headers` <none> #### ` Responses` &#128075; Schema @[Token Schema ](#Token) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `400 bad Request` ```json { "errors": [ { "message": "Unexpected error value: { statusCode: 401, exception: { error: \"invalid_client\", error_description: \"client_id: nI7CMA96CU6oCtUFGd_v8YnaNopGI4B2vq0qlsIOY8k is not valid.\", error_reason: \"invalid_client_id\" } }", "locations": [ { "line": 2, "column": 3 } ], "path": [ "refreshAccessToken" ], "extensions": { "code": "INTERNAL_SERVER_ERROR" } } ], "data": null } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `200 OK ` ```json { "data": { "refreshAccessToken": { "accessToken": ACCESS_TOKEN, "accessToken": REFRESH_TOKEN // default : null } } ``` ### `ChangePassword` ``` changePassword( data: ChangePasswordInput! // the new password ): User! ``` #### `arguments` &#128075; Schema @[Change Password Input Schema ](#ChangePasswordInput) data: changedPasswordInput #### `headers` Authorization : Bearer <TOKEN> #### `Responses` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128561; `401 Unauthorized` ```json { "errors": [ { "message": "Unauthorized", "locations": [ { "line": 2, "column": 3 } ], "path": [ "changePassword" ], "extensions": { "code": "INTERNAL_SERVER_ERROR", "exception": { "response": { "statusCode": 401, "message": "Unauthorized" }, "status": 401, "message": "Unauthorized" } } } ], "data": null } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `400 bad Request` ```json { "error": { "errors": [ { "message": "Expected value of type \"ChangePasswordInput!\", found \"sdg\".", "locations": [ { "line": 2, "column": 24 } ], "extensions": { "code": "GRAPHQL_VALIDATION_FAILED" } } ] } } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `200 OK ` ```json { "data": { "changePassword": [ { "adresse": null, "applications": "[\"593ef07e-9c7e-424b-974a-143f9c465cdc\"]", "avatar": "https://ui-avatars.com/api/?name=XXX+XXXx", "birthdate": "2021-06-02T12:00:00.000Z", "category": "Créateur d’entreprise", "commune": null, "country": null, "createdAt": "2021-06-17T19:47:31.196Z", "email": "email@XXXX.com", "firstname": "Jhon", "legal_identification": "JDXXXXXX", "id": "b298dcbb-3f19-44db-950e-e3facff772d9", "lastname": "Snow", "nationality": null, "onetime_setup": true, "phonenumber": null, "province": null, "updatedAt": "2021-06-23T15:44:15.276Z", "study_level": "Primaire" } ] } } ``` ### `introSetupPersonalInformations` ``` introSetupPersonalInformations( data: UpdateIntroUserInput! ): User! ``` #### `arguments` &#128075; Schema @[Update Intro User User Input Schema ](#UpdateIntroUserInput) data : UpdateIntroUserContactInput // fallow link #### `headers` Authorization : Bearer <TOKEN> #### `Responses` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128561; `401 Unauthorized` ```json { "errors": [ { "message": "Unauthorized", "locations": [ { "line": 2, "column": 3 } ], "path": [ "introSetupPersonalInformations" ], "extensions": { "code": "INTERNAL_SERVER_ERROR", "exception": { "response": { "statusCode": 401, "message": "Unauthorized" }, "status": 401, "message": "Unauthorized" } } } ], "data": null } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `400 bad Request` ```json { "errors": [ { "message": "Field \"UpdateIntroUserInput.category\" of required type \"String!\" was not provided.", "locations": [ { "line": 2, "column": 39 } ], "extensions": { "code": "GRAPHQL_VALIDATION_FAILED" } }, { "message": "Field \"categodry\" is not defined by type \"UpdateIntroUserInput\". Did you mean \"category\"?", "locations": [ { "line": 4, "column": 5 } ], "extensions": { "code": "GRAPHQL_VALIDATION_FAILED" } } ] } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `200 OK ` ```json { "data": { "introSetupPersonalInformations": { "adresse": null, "applications": "[\"593ef07e-9c7e-424b-974a-143f9c465cdc\"]", "avatar": "https://ui-avatars.com/api/?name=XXX+XXXx", "birthdate": "2021-06-02T12:00:00.000Z", "category": "Créateur d’entreprise", "commune": null, "country": null, "createdAt": "2021-06-17T19:47:31.196Z", "email": "email@XXXX.com", "firstname": "Jhon", "legal_identification": "JDXXXXXX", "id": "b298dcbb-3f19-44db-950e-e3facff772d9", "lastname": "Snow", "nationality": null, "onetime_setup": true, "phonenumber": null, "province": null, "updatedAt": "2021-06-23T15:44:15.276Z", "study_level": "Primaire" } } } ``` ### `introSetupContactInformations` ``` introSetupContactInformations( data: UpdateIntroUserContactInput! ): User! ``` #### `arguments` &#128075; Schema @[Update Intro User Contact Input Schema ](#UpdateIntroUserContactInput) data : UpdateIntroUserContactInput // fallow link #### `headers` Authorization : Bearer <TOKEN> #### `Responses` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128561; `401 Unauthorized` ```json { "errors": [ { "message": "Unauthorized", "locations": [ { "line": 2, "column": 3 } ], "path": [ "introSetupContactInformations" ], "extensions": { "code": "INTERNAL_SERVER_ERROR", "exception": { "response": { "statusCode": 401, "message": "Unauthorized" }, "status": 401, "message": "Unauthorized" } } } ], "data": null } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `400 bad Request` ```json { "error": { "errors": [ { "message": "Error Message X", "locations": [ { "line": 3, "column": 37 }, { "line": 3, "column": 142 } ], "extensions": { "code": "GRAPHQL_VALIDATION_FAILED" } } ] } } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `200 OK ` ```json { "data": { "introSetupContactInformations": { "adresse": null, "applications": "[\"593ef07e-9c7e-424b-974a-143f9c465cdc\"]", "avatar": "https://ui-avatars.com/api/?name=XXX+XXXx", "birthdate": "2021-06-02T12:00:00.000Z", "category": "Créateur d’entreprise", "commune": null, "country": null, "createdAt": "2021-06-17T19:47:31.196Z", "email": "email@XXXX.com", "firstname": "Jhon", "legal_identification": "JDXXXXXX", "id": "b298dcbb-3f19-44db-950e-e3facff772d9", "lastname": "Snow", "nationality": null, "onetime_setup": true, "phonenumber": null, "province": null, "updatedAt": "2021-06-23T15:44:15.276Z", "study_level": "Primaire" } } } ``` ### `introSetupProfessionalInformations` ``` introSetupProfessionalInformations( data: UpdateIntroProfessionalInformation! ): User! ``` #### `arguments` &#128075; Schema @[Update Intro Professional Information Schema ](#UpdateIntroProfessionalInformation) data : UpdateIntroProfessionalInformation // fallow link #### `headers` Authorization : Bearer <TOKEN> #### `Responses` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128561; `401 Unauthorized` ```json { "errors": [ { "message": "Unauthorized", "locations": [ { "line": 2, "column": 3 } ], "path": [ "introSetupProfessionalInformations" ], "extensions": { "code": "INTERNAL_SERVER_ERROR", "exception": { "response": { "statusCode": 401, "message": "Unauthorized" }, "status": 401, "message": "Unauthorized" } } } ], "data": null } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `400 bad Request` ```json { "error": { "errors": [ { "message": "Field \"UpdateIntroProfessionalInformation.raison_sociale\" of required type \"String!\" was not provided.", "locations": [ { "line": 3, "column": 11 } ], "extensions": { "code": "GRAPHQL_VALIDATION_FAILED" } } ] } } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `200 OK ` ```json { "data": { "introSetupProfessionalInformations": { "adresse": null, "applications": "[\"593ef07e-9c7e-424b-974a-143f9c465cdc\"]", "avatar": "https://ui-avatars.com/api/?name=XXX+XXXx", "birthdate": "2021-06-02T12:00:00.000Z", "category": "Créateur d’entreprise", "commune": null, "country": null, "createdAt": "2021-06-17T19:47:31.196Z", "email": "email@XXXX.com", "firstname": "Jhon", "legal_identification": "JDXXXXXX", "id": "b298dcbb-3f19-44db-950e-e3facff772d9", "lastname": "Snow", "nationality": null, "onetime_setup": true, "phonenumber": null, "province": null, "updatedAt": "2021-06-23T15:44:15.276Z", "study_level": "Primaire" } } } ``` ### `updateProfessionalInformation` ``` updateProfessionalInformation( data: UpdateProfessionalInformation! ): User! ``` #### `arguments` &#128075; Schema @[Update Professional Information Schema ](#UpdateProfessionalInformation) data : UpdateProfessionalInformation // fallow link #### `headers` Authorization : Bearer <TOKEN> #### `Responses` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128561; `401 Unauthorized` ```json { "errors": [ { "message": "Unauthorized", "locations": [ { "line": 2, "column": 3 } ], "path": [ "updateProfessionalInformation" ], "extensions": { "code": "INTERNAL_SERVER_ERROR", "exception": { "response": { "statusCode": 401, "message": "Unauthorized" }, "status": 401, "message": "Unauthorized" } } } ], "data": null } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `400 bad Request` ```json { "error": { "errors": [ { "message": "Field \"updateProfessionalInformation.raison_sociale\" of required type \"String!\" was not provided.", "locations": [ { "line": 3, "column": 11 } ], "extensions": { "code": "GRAPHQL_VALIDATION_FAILED" } } ] } } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `200 OK ` ```json { "data": { "updateProfessionalInformation": { "adresse": null, "applications": "[\"593ef07e-9c7e-424b-974a-143f9c465cdc\"]", "avatar": "https://ui-avatars.com/api/?name=XXX+XXXx", "birthdate": "2021-06-02T12:00:00.000Z", "category": "Créateur d’entreprise", "commune": null, "country": null, "createdAt": "2021-06-17T19:47:31.196Z", "email": "email@XXXX.com", "firstname": "Jhon", "legal_identification": "JDXXXXXX", "id": "b298dcbb-3f19-44db-950e-e3facff772d9", "lastname": "Snow", "nationality": null, "onetime_setup": true, "phonenumber": null, "province": null, "updatedAt": "2021-06-23T15:44:15.276Z", "study_level": "Primaire" } } } ``` ### `updateUser` ``` updateUser( data: UpdateUserInput! ): User! ``` #### `arguments` &#128075; Schema @[Update User Input Schema ](#UpdateUserInput) data : UpdateUserInput // fallow link #### `headers` Authorization : Bearer <TOKEN> #### `Responses` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128561; `401 Unauthorized` ```json { "errors": [ { "message": "Unauthorized", "locations": [ { "line": 2, "column": 3 } ], "path": [ "updateUser" ], "extensions": { "code": "INTERNAL_SERVER_ERROR", "exception": { "response": { "statusCode": 401, "message": "Unauthorized" }, "status": 401, "message": "Unauthorized" } } } ], "data": null } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `400 bad Request` ```json { "error": { "errors": [ { "message": "Error Message", "locations": [ { "line": 3, "column": 11 } ], "extensions": { "code": "GRAPHQL_VALIDATION_FAILED" } } ] } } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `200 OK ` ```json { "data": { "updateUser": { "adresse": null, "applications": "[\"593ef07e-9c7e-424b-974a-143f9c465cdc\"]", "avatar": "https://ui-avatars.com/api/?name=XXX+XXXx", "birthdate": "2021-06-02T12:00:00.000Z", "category": "Créateur d’entreprise", "commune": null, "country": null, "createdAt": "2021-06-17T19:47:31.196Z", "email": "email@XXXX.com", "firstname": "Jhon", "legal_identification": "JDXXXXXX", "id": "b298dcbb-3f19-44db-950e-e3facff772d9", "lastname": "Snow", "nationality": null, "onetime_setup": true, "phonenumber": null, "province": null, "updatedAt": "2021-06-23T15:44:15.276Z", "study_level": "Primaire" } } } ``` ### `updateUserContact` ``` updateUserContact( data: UpdateUserContactInput! ): User! ``` #### `arguments` &#128075; Schema @[Update User Contact Input Schema ](#UpdateUserContactInput) data : UpdateUserContactInput // fallow link #### `headers` Authorization : Bearer <TOKEN> #### `Responses` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128561; `401 Unauthorized` ```json { "errors": [ { "message": "Unauthorized", "locations": [ { "line": 2, "column": 3 } ], "path": [ "updateUserContact" ], "extensions": { "code": "INTERNAL_SERVER_ERROR", "exception": { "response": { "statusCode": 401, "message": "Unauthorized" }, "status": 401, "message": "Unauthorized" } } } ], "data": null } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `400 bad Request` ```json { "error": { "errors": [ { "message": "Error Message", "locations": [ { "line": 3, "column": 11 } ], "extensions": { "code": "GRAPHQL_VALIDATION_FAILED" } } ] } } ``` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#128515; `200 OK ` ```json { "data": { "updateUserContact": { "adresse": null, "applications": "[\"593ef07e-9c7e-424b-974a-143f9c465cdc\"]", "avatar": "https://ui-avatars.com/api/?name=XXX+XXXx", "birthdate": "2021-06-02T12:00:00.000Z", "category": "Créateur d’entreprise", "commune": null, "country": null, "createdAt": "2021-06-17T19:47:31.196Z", "email": "email@XXXX.com", "firstname": "Jhon", "legal_identification": "JDXXXXXX", "id": "b298dcbb-3f19-44db-950e-e3facff772d9", "lastname": "Snow", "nationality": null, "onetime_setup": true, "phonenumber": null, "province": null, "updatedAt": "2021-06-23T15:44:15.276Z", "study_level": "Primaire" } } } ``` ## `SCHEMA` ### `inputs` #### `UpdateIntroProfessionalInformation` ``` input UpdateIntroProfessionalInformation { adresse: String! commune: String! forme_juridique: String! is_company: Boolean! numero_de_telephone: String! province: String! raison_sociale: String! representatives_function: String! siege_social: String! type_entreprise: String! } ``` #### `UpdateIntroUserContactInput` ``` input UpdateIntroUserContactInput { adresse: String! commune: String country: String! nationality: String! phonenumber: String! province: String } ``` #### `UpdateIntroUserInput` ``` input UpdateIntroUserInput { birthdate: Date! category: String! firstname: String! gender: String! lastname: String! legal_identification: String! onetime_setup: Boolean = true study_level: String! } ``` #### `UpdateProfessionalInformation` ``` input UpdateProfessionalInformation { adresse: String! commune: String! forme_juridique: String! is_company: Boolean! numero_de_telephone: String! province: String! raison_sociale: String! representatives_function: String! siege_social: String! type_entreprise: String! } ``` #### `UpdateUserContactInput` ``` input UpdateUserContactInput { adresse: String! commune: String country: String! nationality: String! phonenumber: String! province: String } ``` #### `UpdateUserInput` ``` input UpdateUserInput { birthdate: Date! firstname: String! gender: String! lastname: String! legal_identification: String! study_level: String! } ``` #### `ChangePasswordInput` ``` input ChangePasswordInput { newPassword: String! oldPassword: String! } ``` ### `Types` #### `ProfessionalInformation` ``` type ProfessionalInformation { adresse: String! commune: String! # Identifies the date and time when the object was created. createdAt: Date! forme_juridique: String! id: ID! numero_de_telephone: String! province: String! raison_sociale: String! siege_social: String! type_entreprise: String! # Identifies the date and time when the object was last updated. updatedAt: Date! user: User } ``` #### `EmailVerification` ``` type EmailVerification { # Email Verification boolean isVerified: Boolean! } ``` #### `Token` ``` type Token { # JWT access token accessToken: String! # JWT refresh token refreshToken: String } ``` #### `User` ``` type User { adresse: String applications: String avatar: String birthdate: Date category: String commune: String country: String # Identifies the date and time when the object was created. createdAt: Date! email: String! firstname: String! gender: String id: ID! is_company: Boolean! lastname: String! legal_identification: String nationality: String onetime_setup: Boolean! phonenumber: String professional_information: ProfessionalInformation province: String representatives_function: String study_level: String # Identifies the date and time when the object was last updated. updatedAt: Date! } ```