Справочник API по графикам дежурств

Возможные значения полей

Тип ограничения

ЗначениеОписание
NONEБез ограничений
TIMEOFDAYОграничение по определённому времени суток
TIMEINTERVALSОграничение по определённым интервалам времени

Тип ротации

ЗначениеОписание
DAILYРотация происходит ежедневно
WEEKLYРотация происходит еженедельно
CUSTOMРотация идёт по своему расписанию

Дни недели

ЗначениеОписание
SATURDAYСуббота
SUNDAYВоскресенье
MONDAYПонедельник
TUESDAYВторник
WEDNESDAYСреда
THURSDAYЧетверг
FRIDAYПятница

Получить участников графика дежурств

Эндпоинт:

GET /on-call-schedules/:id/members

Пример запроса

GET /on-call-schedules/clzmgn2ze40301poblv9e1pq5/members

Пример ответа

{
"currentMembers": [
{
"id": "clh8nmaan72592bfokqjqd95s1",
"name": null,
"email": "member1@email.com",
"phone": null,
"avatar": "https://example.com/avatar.jpg"
}
],
"nextMembers": [
{
"id": "clzajmm98115510h5olxn5i7ljr",
"name": null,
"email": "member2@email.com",
"phone": null,
"avatar": null
}
],
"allMembers": [
{
"id": "clh8nmaan72592bfokqjqd95s1",
"name": null,
"email": "member1@email.com",
"phone": null,
"avatar": "https://example.com/avatar.jpg"
},
{
"id": "clzajmm98115510h5olxn5i7ljr",
"name": null,
"email": "member2@email.com",
"phone": null,
"avatar": null
}
]
}

Создать график дежурств

Эндпоинт:

POST /on-call-schedules

Пример запроса

{
"name": "Primary On-call Schedule",
"description": "This schedule is for the primary on-call team.",
"onCallShifts": [
{
"name": "Primary",
"members": [
{
"workspaceMemberId": "member123",
"color": "#FF5733"
},
{
"workspaceMemberId": "member456",
"color": "#33C4FF"
}
],
"rotationType": "WEEKLY",
"customRotationTypeValue": null,
"customRotationTypeUnit": null,
"startDate": "2023-08-08T08:00:00Z",
"endDate": "2024-08-21T08:42:00.000Z",
"restrictionType": "TIMEINTERVALS",
"timeOfDayRestrictionStartTime": null,
"timeOfDayRestrictionEndTime": null,
"timeIntervals": [
{
"startDay": "SATURDAY",
"startDayTime": "1970-01-01T21:00:00.000Z",
"endDay": "SUNDAY",
"endDayTime": "1970-01-01T03:00:00.000Z"
}
]
}
]
}

Пример ответа

{
"id": "clzmgn2ze40301poblv9e1pq5",
"name": "Primary On-call Schedule",
"description": "This schedule is for the primary on-call team.",
"status": "ACTIVE",
"onCallShifts": [
{
"id": "clzmgn2zt40361pobj78giwf7",
"name": "Primary",
"order": 1,
"members": [
{
"id": "clzmgn2zt40401pobjzq0pwjd",
"order": 3,
"color": "#0470a6",
"workspaceMember": {
"id": "member123",
"user": {
"id": "clh8nmaan72592bfokqjqd95s1",
"name": null,
"email": "member12@email.com",
"avatar": null
}
}
},
{
"id": "clzmgn2zt40381pob690bwaxx",
"order": 1,
"color": "#195397",
"workspaceMember": {
"id": "member456",
"user": {
"id": "clzajmm98115510h5olxn5i7ljr",
"name": null,
"email": "member45@email.com",
"avatar": null
}
}
}
],
"rotationType": "WEEKLY",
"customRotationTypeValue": null,
"customRotationTypeUnit": null,
"startDate": "2024-08-09T08:42:34.557Z",
"endDate": "2024-08-21T08:42:00.000Z",
"restrictionType": "TIMEINTERVALS",
"timeOfDayRestrictionStartTime": null,
"timeOfDayRestrictionEndTime": null,
"timeIntervals": [
{
"id": "clzmjq8bn313521ioblyzg7hic",
"startDay": "SATURDAY",
"startDayTime": "1970-01-01T21:00:00.000Z",
"endDay": "SUNDAY",
"endDayTime": "1970-01-01T03:00:00.000Z"
}
]
}
]
}

Обновить график дежурств

Эндпоинт:

PUT /on-call-schedules/:id

Пример запроса

PUT /on-call-schedules/clzmgn2ze40301poblv9e1pq5
{
"id": "clzmgn2ze40301poblv9e1pq5",
"name": "Name Update",
"description": "This schedule is for the primary on-call team.",
"status": "ACTIVE",
"onCallShifts": [
{
"id": "clzmgn2zt40361pobj78giwf7",
"name": "Primary",
"order": 1,
"members": [
{
"id": "clzmgn2zt40401pobjzq0pwjd",
"order": 3,
"color": "#0470a6",
"workspaceMember": {
"id": "member123",
"user": {
"id": "clh8nmaan72592bfokqjqd95s1",
"name": null,
"email": "member12@email.com",
"avatar": null
}
}
},
{
"id": "clzmgn2zt40381pob690bwaxx",
"order": 1,
"color": "#195397",
"workspaceMember": {
"id": "member456",
"user": {
"id": "clzajmm98115510h5olxn5i7ljr",
"name": null,
"email": "member45@email.com",
"avatar": null
}
}
}
],
"rotationType": "WEEKLY",
"customRotationTypeValue": null,
"customRotationTypeUnit": null,
"startDate": "2024-08-09T08:42:34.557Z",
"endDate": "2024-08-21T08:42:00.000Z",
"restrictionType": "TIMEINTERVALS",
"timeOfDayRestrictionStartTime": null,
"timeOfDayRestrictionEndTime": null,
"timeIntervals": [
{
"id": "clzmjq8bn313521ioblyzg7hic",
"startDay": "SATURDAY",
"startDayTime": "1970-01-01T21:00:00.000Z",
"endDay": "SUNDAY",
"endDayTime": "1970-01-01T03:00:00.000Z"
}
]
}
]
}

Пример ответа

{
"id": "clzmgn2ze40301poblv9e1pq5",
"name": "Name Update",
"description": "This schedule is for the primary on-call team.",
"status": "ACTIVE",
"onCallShifts": [
{
"id": "clzmgn2zt40361pobj78giwf7",
"name": "Primary",
"order": 1,
"members": [
{
"id": "clzmgn2zt40401pobjzq0pwjd",
"order": 3,
"color": "#0470a6",
"workspaceMember": {
"id": "member123",
"user": {
"id": "clh8nmaan72592bfokqjqd95s1",
"name": null,
"email": "member12@email.com",
"avatar": null
}
}
},
{
"id": "clzmgn2zt40381pob690bwaxx",
"order": 1,
"color": "#195397",
"workspaceMember": {
"id": "member456",
"user": {
"id": "clzajmm98115510h5olxn5i7ljr",
"name": null,
"email": "member45@email.com",
"avatar": null
}
}
}
],
"rotationType": "WEEKLY",
"customRotationTypeValue": null,
"customRotationTypeUnit": null,
"startDate": "2024-08-09T08:42:34.557Z",
"endDate": "2024-08-21T08:42:00.000Z",
"restrictionType": "TIMEINTERVALS",
"timeOfDayRestrictionStartTime": null,
"timeOfDayRestrictionEndTime": null,
"timeIntervals": [
{
"id": "clzmjq8bn313521ioblyzg7hic",
"startDay": "SATURDAY",
"startDayTime": "1970-01-01T21:00:00.000Z",
"endDay": "SUNDAY",
"endDayTime": "1970-01-01T03:00:00.000Z"
}
]
}
]
}

Удалить график дежурств

Эндпоинт:

DELETE /on-call-schedules/:id

Пример запроса

DELETE /on-call-schedules/schedule-id-1

Пример ответа

204 No Content