Типи статусів
Повертає типи статусів — довідник значень status_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/status-types \
-H "Authorization: Bearer smg_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
З обмеженням розміру сторінки:
curl -s "https://smengo.com/api/v1/status-types?limit=50" \
-H "Authorization: Bearer smg_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
Відповідь
{
"data": [
{
"id": "c2e4a6b8-1d3f-4a5c-8e7b-9f0a1b2c3d4e",
"code": "work",
"label": { "ru": "Работает", "uk": "Працює", "en": "Working" },
"color": "#22c55e",
"counts_as_present": true,
"is_system": true,
"start_time": "09:00:00",
"end_time": "18:00:00"
},
{
"id": "d4f6a8c0-2e5b-4b7d-9a1c-6e8f0b2d4a86",
"code": "training",
"label": { "ru": "Обучение", "uk": "Навчання", "en": "Training" },
"color": "#818cf8",
"counts_as_present": false,
"is_system": false,
"start_time": null,
"end_time": null
}
],
"meta": { "next_cursor": null }
}
Поля відповіді
| Поле | Тип | Опис |
|---|---|---|
id |
string (uuid) |
Унікальний ідентифікатор типу статусу; на нього посилається status_id у Записах графіка. |
code |
string |
Машинний код статусу. Системні коди: work, vacation, sick, dayoff, late; кастомні статуси мають власні коди. |
label |
object |
Мультимовна назва за локалями, як є: { "ru": …, "uk": …, "en": … }. Єдине поле-об'єкт у всьому v1 — решта полів API скалярні. |
color |
string |
Колір статусу в hex (#22c55e); null не буває. |
counts_as_present |
boolean |
Чи враховується статус як присутність: день із таким статусом вважається відпрацьованим (наприклад, робочий день — так, відпустка — ні). |
is_system |
boolean |
true — системний статус, спільний для всіх організацій; false — кастомний статус вашої організації. |
start_time |
string (HH:MM:SS) | null |
Опціональне дефолтне вікно зміни для статусу — початок, у таймзоні організації. |
end_time |
string (HH:MM:SS) | null |
Кінець дефолтного вікна; у статусів без часу обидва поля null. |
Відповідь містить і системні статуси, і кастомні статуси вашої організації. Системні (is_system: true) спільні для всіх організацій; кастомні — лише ваші: чужі кастомні статуси у відповідь не потрапляють ніколи.
Пагінація
Список відсортований за sort_order, id — при цьому саме поле sort_order у data[] не віддається: сортування за ним є, а поля у відповіді немає (на відміну від пресетів змін). Якщо статусів більше, ніж limit, meta.next_cursor містить курсор для наступної сторінки; передайте його в cursor наступного запиту як є:
curl -s "https://smengo.com/api/v1/status-types?limit=1&cursor=eyJrIjoxLCJpZCI6ImMyZTRhNmI4LTFkM2YtNGE1Yy04ZTdiLTlmMGExYjJjM2Q0ZSJ9" \
-H "Authorization: Bearer smg_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
meta.next_cursor дорівнює null, коли статусів більше немає. Загальні правила пагінації — у Конвенціях → Пагінація.
Що далі
- Записи графіка — де на статуси посилається
status_id. - Пресети змін — другий довідник для інтерпретації графіка.
- Організація — таймзона, в якій трактуються
start_time/end_time.