# Setear zonas a dispositivo

Este endpoint permite asignar zonas a un dispositivo. El dispositivo "pierde" las zonas que tenía asignada anteriormente. Si sólo quiere [Asignar zonas](https://docs.api.persat.com.ar/entidades-basicas/zonas-de-trabajo/asignar-zonas) o [Desasignar zonas](https://docs.api.persat.com.ar/entidades-basicas/zonas-de-trabajo/asignar-zonas/desasignar-zonas-a-dispositivo), revise los endpoints correspondientes.

<mark style="color:green;">`POST`</mark> `https://api.persat.com.ar/v1/devices/`<mark style="color:purple;">`:device_id`</mark>`/zones`

#### Headers

| Name          | Type   | Description      |
| ------------- | ------ | ---------------- |
| Content-Type  | string | application/json |
| Authorization | string | Bearer API\_KEY  |

#### Path parameters

| Name                                          | Type   | Description                                                       |
| --------------------------------------------- | ------ | ----------------------------------------------------------------- |
| :device\_id<mark style="color:red;">\*</mark> | number | Identificador del dispositivo al cual le quiero asignar las zonas |

#### Request Body

| Name                                        | Type      | Description                                                                        |
| ------------------------------------------- | --------- | ---------------------------------------------------------------------------------- |
| zone\_ids<mark style="color:red;">\*</mark> | number\[] | Array con enteros. Cada uno de los enteros es el id de la zona que quiero asignar. |

{% tabs %}
{% tab title="200 Zonas asignadas" %}

```javascript
{
    "success": true,
    "data": {}
}
```

{% endtab %}

{% tab title="400 Alguna de las zonas no existe" %}

```javascript
{
    "success": false,
    "error": {
        "status": 400,
        "type": "BAD_REQUEST",
        "userMessage": "La zone o el device_id no existe/n"
    }
}
```

{% endtab %}

{% tab title="404: Dispositivo no encontrado" %}

```javascript
{
    "success": false,
    "error": {
        "status": 404,
        "type": "NOT_FOUND",
        "userMessage": "No existe un device con este id: 1433"
    }
}
```

{% endtab %}
{% endtabs %}

### Ejemplo de Request

Ejemplo de body, en donde seteamos las 3 zonas que definimos para este dispositivo.

```json
{
    "zone_ids": [2,3,4]
}
```

### Analizando la Respuesta

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

**data:** Es un objeto JSON vacío

{% hint style="info" %}
Si alguna de las zonas no se puede asignar. Entonces no se asigna ninguna zona y se recibe un error. Es decir que basta con revisar status 200 para verificar que las zonas fueron asignadas.
{% endhint %}

{% hint style="warning" %}
IMPORTANTE: El dispositivo "pierde" las zonas que tenia asignada anteriormente. Es decir que si quiero solo asignar una zona pero sin perder las anteriores. Tengo que primero [Listar Zonas](https://docs.api.persat.com.ar/entidades-basicas/zonas-de-trabajo/listar-zonas) para este dispositivo, y así asegurarme de enviar el array con todas las zonas
{% endhint %}
