# Changing avatar

Avatars can't be changed through `/employee/update`, you must use either `assign` (to set avatar to one of preset icons), or `upload` (to upload your own image).

## API actions

API path: `/employee/avatar`.

### assign

Assign `icon_id` (from standard icon set) to this employee/driver.\
The `icon_id` can be `null` – this means that uploaded avatar should be used instead of icon.

**required sub-user rights**: `employee_update`.

#### Parameters

| name         | description                                             | type |
| ------------ | ------------------------------------------------------- | ---- |
| employee\_id | ID of the employee/driver to whom the icon will assign. | int  |
| icon\_id     | ID of the icon.                                         | int  |

#### Examples

{% tabs %}
{% tab title="cURL" %}
{% code overflow="wrap" %}

```sh
curl -X POST 'https://api.eu.navixy.com/v2/employee/avatar/assign' \
    -H 'Content-Type: application/json' \
    -d '{"hash": "22eac1c27af4be7b9d04da2ce1af111b", "employee_id": 2132, "icon_id": 3654}'
```

{% endcode %}
{% endtab %}

{% tab title="HTTP GET" %}
{% code overflow="wrap" %}

```http
https://api.eu.navixy.com/v2/employee/avatar/assign?hash=a6aa75587e5c59c32d347da438505fc3&employee_id=2132&icon_id=3654
```

{% endcode %}
{% endtab %}
{% endtabs %}

#### Response

```json
{ "success": true }
```

#### Errors

* 201 – Not found in the database - when employee/driver with `employee_id` not found.

### upload

Uploads avatar image for specified employee/driver.\
Then it will be available from /employee/avatars/\
e.g. `https://api.eu.navixy.com/v2/static/employee/avatars/abcdef123456789.png`.

**required sub-user rights**: `employee_update`.

**avatar\_file\_name** returned in response and will be returned from [/employee/list](https://www.navixy.com/docs/navixy-api/user-api/backend-api/resources/field-service/index#list).

**MUST** be a POST multipart request (multipart/form-data),\
with one of the parts being an image file upload (with the name `file`).

File part **mime** type must be one of:

* `image/jpeg`
* `image/pjpeg`
* `image/png`
* `image/gif`
* `image/webp`

#### Parameters

| name             | description                                                            | type   |
| ---------------- | ---------------------------------------------------------------------- | ------ |
| employee\_id     | ID of the employee/driver to whom the icon will assign.                | int    |
| file             | Image file.                                                            | string |
| redirect\_target | Optional. URL to redirect. If passed returns redirect to `?response=`. | string |

#### Response

```json
{
    "success": true,
    "value": "picture.png"
}
```

* `value` - string. Uploaded file name.

#### Errors

* 201 – Not found in the database - when employee/driver with `employee_id` not found.
* 233 – No data file - if `file` part not passed.
* 234 – Invalid data format - if passed `file` with unexpected `mime` type.
* 254 – Cannot save file - on some file system errors.
