待命排班 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