Пресети змін

Повертає пресети змін організації — довідник шаблонів часу («Ранок», «Вечір», «Гнучка»), на які посилається поле shift_preset_id записів графіка.

Скоуп

Скоуп не потрібен — це довідник без секретів, доступний будь-якому валідному ключу організації, незалежно від набору скоупів (див. Скоупи та права → Довідники без скоупу). Довідник потрібен, щоб інтерпретувати записи графіка, тому відкритий без додаткових умов.

Query-параметри

Параметр Обов'язковий Опис
limit ні Ціле 1..200, за замовчуванням 100.
cursor ні Курсор meta.next_cursor попередньої відповіді — для наступної сторінки.

from/to, department_id та employee_id на цьому ресурсі не підтримано: передача будь-якого з них → 400 validation_error (параметр відхиляється явно, а не ігнорується мовчки — див. Конвенції → Фільтри). Це довідник без часового виміру та без прив'язки до відділів.

Запит

curl -s https://smengo.com/api/v1/shift-presets \
  -H "Authorization: Bearer smg_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

З обмеженням розміру сторінки:

curl -s "https://smengo.com/api/v1/shift-presets?limit=50" \
  -H "Authorization: Bearer smg_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

Відповідь

{
  "data": [
    {
      "id": "3f8e2a1c-6b5d-4e9f-a2c1-7d8e9f0a1b2c",
      "label": "Утро",
      "start_time": "08:00:00",
      "end_time": "16:00:00",
      "is_flexible": false,
      "color": "#22c55e",
      "sort_order": 1
    },
    {
      "id": "5a7c9e1b-3d6f-4c8a-9b2d-0e4f6a8c1d35",
      "label": "Гибкая",
      "start_time": null,
      "end_time": null,
      "is_flexible": true,
      "color": "#a3e635",
      "sort_order": 2
    }
  ],
  "meta": { "next_cursor": null }
}

Поля відповіді

Поле Тип Опис
id string (uuid) Унікальний ідентифікатор пресета; на нього посилається shift_preset_id у Записах графіка.
label string Назва пресета.
start_time string (HH:MM:SS) | null Початок зміни — в таймзоні організації, не в UTC (таймзона — у GET /org, поле timezone).
end_time string (HH:MM:SS) | null Кінець зміни — теж у таймзоні організації.
is_flexible boolean Чи гнучка зміна — без фіксованих часів початку та кінця.
color string Колір пресета в hex (#22c55e); null не буває.
sort_order number (int) Позиція у списку; список відсортований за цим полем (плюс id як тай-брейкер). На відміну від типів статусів, тут поле присутнє у відповіді.

Пара null/null у start_time/end_time — норма, а не пропуск даних: так виглядає гнучка зміна (is_flexible: true), у якої немає фіксованих часів — конкретний час задає сам запис графіка або він не фіксується взагалі.

Пагінація

Список відсортований за sort_order, id. Якщо пресетів більше, ніж limit, meta.next_cursor містить курсор для наступної сторінки; передайте його в cursor наступного запиту як є:

curl -s "https://smengo.com/api/v1/shift-presets?limit=1&cursor=eyJrIjoxLCJpZCI6IjNmOGUyYTFjLTZiNWQtNGU5Zi1hMmMxLTdkOGU5ZjBhMWIyYyJ9" \
  -H "Authorization: Bearer smg_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

meta.next_cursor дорівнює null, коли пресетів більше немає. Загальні правила пагінації — у Конвенціях → Пагінація.

Що далі

Чи була стаття корисною?