---
# System prepended metadata

title: '`CRI Accounts (Back-End / Server-Side)`'

---

# `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!
}
```