# Asignar horario semanal de forma masiva

Permite asignar el horario laboral de toda la semana, pisando el horario actual para uno o varios dispositivos.

<mark style="color:green;">`POST`</mark> `https://api.persat.com.ar/v1/working-hours`

#### Headers

| Name                                            | Type   | Description      |
| ----------------------------------------------- | ------ | ---------------- |
| Content-Type<mark style="color:red;">\*</mark>  | string | application/json |
| Authorization<mark style="color:red;">\*</mark> | string | Bearer API\_KEY  |

#### Request Body

<table><thead><tr><th width="254">Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>devices_ids<mark style="color:red;">*</mark></td><td>Array de numbers</td><td>Identificadores de los dispositivos.</td></tr><tr><td>working_hours<mark style="color:red;">*</mark></td><td>Object</td><td>Objeto Json con 7 campos. Cada uno indicando el horario laboral para cada día de la semana</td></tr><tr><td>working_hours.monday<mark style="color:red;">*</mark></td><td>array de Objetos JSON</td><td>Ver ejemplo de request más abajo</td></tr><tr><td>working_hours.tuesday<mark style="color:red;">*</mark></td><td>array de Objetos JSON</td><td>Ver ejemplo de request más abajo</td></tr><tr><td>working_hours.wednesday<mark style="color:red;">*</mark></td><td>array de Objetos JSON</td><td>Ver ejemplo de request más abajo</td></tr><tr><td>working_hours.thursday<mark style="color:red;">*</mark></td><td>array de Objetos JSON</td><td>Ver ejemplo de request más abajo</td></tr><tr><td>working_hours.friday<mark style="color:red;">*</mark></td><td>array de Objetos JSON</td><td>Ver ejemplo de request más abajo</td></tr><tr><td>working_hours.saturday<mark style="color:red;">*</mark></td><td>array de Objetos JSON</td><td>Ver ejemplo de request más abajo</td></tr><tr><td>working_hours.sunday<mark style="color:red;">*</mark></td><td>array de Objetos JSON</td><td>Ver ejemplo de request más abajo</td></tr></tbody></table>

{% tabs %}
{% tab title="200: OK" %}

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

{% endtab %}

{% tab title="400 BAD REQUEST" %}

```json
{
    "success": false,
    "error": {
        "status": 400,
        "type": "BAD_REQUEST",
        "userMessage": "\"monday\" is required"
    }
}
```

{% endtab %}

{% tab title="404 device NOT FOUND" %}

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

{% endtab %}
{% endtabs %}

### Ejemplo de Request

Ejemplo de body, en donde indicamos que los dos únicos días laborales son el lunes y el martes para los dispositivos 14 y 15 únicamente.

```json
{
    "devices_ids": [14,15],
    "working_hours": {
        "monday": [
            {
                "start": "09:33",
                "end": "11:01"
            }
        ],
        "tuesday": [
            {
                "start": "12:33",
                "end": "23:59"
            }
        ],
        "wednesday": [],
        "thursday": [],
        "friday": [],
        "saturday": [],
        "sunday": [
            {
                "start": "15:11",
                "end": "18:22"
            }
        ]   
    }
}
```

{% hint style="success" %}
Los campos de este body se explican con más detalle en [Asignar horario semanal](https://docs.api.persat.com.ar/entidades-basicas/dispositivos/asignar-horario-laboral/asignar-horario-semanal)
{% endhint %}

{% hint style="danger" %}
La consulta se realiza con éxito solo si se pudo asignar los horarios a todos los dispositivos mencionados en el request. Si por alguna razón no se pudo actualizar el horario de algún dispositivo, entonces toda la consulta se da por fallida y por ende no se modifica ningún horario de ningún dispositivo.

Prestar especial atención a que los dispositivos existan. Se puede verificar primero el endpoint \
[Listar Dispositivos](https://docs.api.persat.com.ar/entidades-basicas/dispositivos/listar-dispositivos)
{% endhint %}
