Операции с графиком работы

Получение расписания пользователя

Получение расписания происходит с помощью GET-запроса. Требуется предоставить параметры запроса after и before c типом Дата, максимальный интервал между которыми может составлять одну неделю.

$ curl -H "Authorization: Bearer api-key" https://api.planadoapp.com/v2/users/c855dc30-11ce-4a64-98f9-4951d9fa2da7/shifts?after="2022-07-18"&before="2022-07-19" | jq
{
  "timeline": [
    {
      "time_from": "2022-07-18T00:00:00+03:00",
      "time_to": "2022-07-18T08:00:00+03:00",
      "working": false,
      "territory": null,
      "job_type": null
    },
    {
      "time_from": "2022-07-18T08:00:00+03:00",
      "time_to": "2022-07-18T10:00:00+03:00",
      "working": true,
      "territory": {
        "uuid": "f42399cc-a501-48eb-92d9-7dc3a98b7f01",
        "name": "участок3"
      },
      "job_type": {
        "uuid": "fe2f90b2-2282-42fe-855b-c90fc25d774c",
        "code": "Обслуживание точек"
      }
    },
    {
      "time_from": "2022-07-18T10:00:00+03:00",
      "time_to": "2022-07-18T15:00:00+03:00",
      "working": true,
      "territory": {
        "uuid": "216fb26c-b3a0-4995-80eb-7fe0e331d058",
        "name": "Москва С-З"
      },
      "job_type": {
        "uuid": "42108f82-89d5-42b8-919b-c9a2be68941f",
        "code": "Выезд"
      }
    },
    {
      "time_from": "2022-07-18T15:00:00+03:00",
      "time_to": "2022-07-19T00:00:00+03:00",
      "working": true,
      "territory": {
        "uuid": "f42399cc-a501-48eb-92d9-7dc3a98b7f01",
        "name": "участок3"
      },
      "job_type": {
        "uuid": "77e9fb1f-c9a9-461d-b169-ef595d61cdf0",
        "code": "Доставка"
      }
    }
  ]
}

Добавление и изменение графика

Чтобы добавить или изменить расписание работника, отправьте PATCH-запрос, в теле которого находится массив shifts с настройками.

$ curl -H "Authorization: Bearer api-key" \
       -X PATCH \
       https://api.planadoapp.com/v2/users/c855dc30-11ce-4a64-98f9-4951d9fa2da7/shifts \
       --data @- << EOF
{
  "shifts": [
    {
      "time_from": "2022-07-19T08:00:00+03:00",
      "time_to": "2022-07-19T12:00:00+03:00",
      "working": true,
      "job_type": {
        "code": "Ремонт"
      }
    }, {
      "time_from": "2022-07-18T13:00:00+03:00",
      "time_to": "2022-07-19T18:00:00+03:00",
      "job_type": {
        "uuid": "1ed090d9-1977-6660-a7ed-429baf688d7b"
      },
      "territory": {
        "name": "Москва С-З"
      }
    }
  ]
}
EOF
Table 1. Поля элементов shifts
Поле Тип JSON-тип Может быть null Описание

time_from

Дата и время

Строка

Нет

Начало интервала

time_to

Дата и время

Строка

Нет

Конец интервала

working

Булев

Булев

Да

Работает ли сотрудник. Если отсутствует, считается true

territory

Участок

Объект

Да

Участок

job_type

Тип наряда

Объект

Да

Тип наряда

Успешный запрос завершается со статусом 204 (No Content) и не возвращает каких-либо данных.