Временные интервалы (/interval/)

Мы обновили документацию, актуальная версия страницы доступна по ссылке: Временные интервалы (/interval/)


Ресурс предназначен для управления временными интервалами, которые впоследствии могут использоваться, например, для указания периода действия привил входящего вызова.

Описание структур данных

Интервал (IntervalItem)

Имя

Тип

Обязательный

Значение По УмолчаниюОписание

timezone

string

да


Временная зона интервала.

conditions

array [condition]

да


Список условий временных диапазонов интервала

name

string

да


Имя интервала

Условие (Condition) 

Параметры должны быть заданы парно (если задан "start_time", то должен быть и "end_time"), кроме параметра "month", который может быть задан сам по себе.

Если заданы "start_datetime" и "end_datetime", то другие параметры будут игнорироваться.  Все параметры (кроме "start_datetime" и "end_datetime") дополняют друг друга, если определены, например, "month=7, start_dow=2, end_dow=3" подразумевает все вторники и среды июля.

Параметры с префиксом "start" должны быть меньше параметров с префиксом "end", исключением является пара "start_dow/end_dow",  где записью "start_dow=3, end_dow=1"  можно указать все дни кроме вторника

Имя

Тип

ОбязательныйЗначение По УмолчаниюОписание

start_datetime

string

нетnullДата начала в виде "YYYY-MM-DD hh:mm:ss", например "2015-02-20 15:33:01"

start_dow

integer

нетnullНачальный день недели 1-7 (1-воскресенье, 7-суббота)

start_time

integer

нетnullВремя начала в виде "hh:mm:ss"

end_time

integer

нетnullВремя окончания в виде "hh:mm:ss"

month

integer

нетnullМесяц действия в диапазоне 1-12

end_dow

integer

нетnullКонечный день недели 1-7 (1-воскресенье, 7-суббота)

end_datetime

string

нетnullДата окончания в виде "YYYY-MM-DD hh:mm:ss", например "2015-02-20 16:34:00"

end_mday

integer

нетnullКонечный день месяца (1-31)

start_mday

integer

нетnullНачальный день месяца (1-31)
sched_start_datestringнетnullДата начала в виде "YYYY-MM-DD hh:mm:ss", например "2015-02-20 15:33:01"
sched_active_daysintegerнетnullКол-во рабочих дней, начиная с даты начала. Минимум = 1
sched_skip_daysintegerнетnullКол-во дней, которые нужно пропустить до следующих рабочих дней. Минимум = 1

Пример

Для клиента с идентификатором 12 создать диапазон, отвечающий за понедельник-пятницу с 09:00 до 18:00 и субботу с 09:00 до 14:00

метод
ресурс
данные
ответ
POST
/client/12/interval/

{
"timezone": "Europe/Moscow",
"conditions": [
{
"start_dow": 2,
"end_dow": 6,
"start_time": "09:00:00",
"end_time": "18:00:00"
},
{
"start_dow": 7,
"end_dow": 7,
"start_time": "09:00:00",
"end_time": "14:00:00"
}

],
"name": "рабочее время"
}

{
"timezone": "Europe/Moscow",
"conditions": [
{
"start_datetime": null,
"start_dow": 2,
"start_time": "09:00:00",
"month": null,
"end_mday": null,
"end_dow": 6,
"end_time": "18:00:00",
"start_mday": null,
"end_datetime": null
},
{
"start_datetime": null,
"start_dow": 7,
"start_time": "09:00:00",
"month": null,
"end_mday": null,
"end_dow": 7,
"end_time": "14:00:00",
"start_mday": null,
"end_datetime": null
}
],
"id": 85,
"client_id": 12,
"name": "рабочее время"
}


Ресурсы

Раздел "клиент"

POST /client/{client_id}/interval/

Добавить interval

Параметры URL

Имя

Тип

client_id

string

Параметры JSON

Имя

Тип

Обязательный

timezone

string

да

conditions

array [condition]

да

name

string

да

Ресурс condition

Имя

Тип

Обязательный

start_datetime

string

нет

start_minute

integer

нет

end_minute

integer

нет

start_dow

integer

нет

start_hour

integer

нет

end_hour

integer

нет

month

integer

нет

end_dow

integer

нет

end_datetime

string

нет

end_mday

integer

нет

start_mday

integer

нет

Поля ответа

Имя

Тип

timezone

string

conditions

array [interval_condition]

id

integer

client_id

integer

name

string

Ресурс interval_condition

Имя

Тип

Обязательный

start_datetime

string

нет

start_minute

integer

нет

end_minute

integer

нет

start_dow

integer

нет

start_hour

integer

нет

end_hour

integer

нет

month

integer

нет

end_dow

integer

нет

end_datetime

string

нет

end_mday

integer

нет

start_mday

integer

нет

GET /client/{client_id}/interval/

Получить interval list

Параметры URL

Имя

Тип

client_id

string

Поля ответа

Имя

Тип

timezone

string

conditions

array [interval_condition]

id

integer

client_id

integer

name

string

Ресурс interval_condition

Имя

Тип

Обязательный

start_datetime

string

нет

start_minute

integer

нет

end_minute

integer

нет

start_dow

integer

нет

start_hour

integer

нет

end_hour

integer

нет

month

integer

нет

end_dow

integer

нет

end_datetime

string

нет

end_mday

integer

нет

start_mday

integer

нет


PUT /client/{client_id}/interval/{interval_id}

Обновить interval

Параметры URL

Имя

Тип

client_id

string

interval_id

integer

Параметры JSON

Имя

Тип

Обязательный

timezone

string

да

conditions

array [condition]

да

name

string

да

Ресурс condition

Имя

Тип

Обязательный

start_datetime

string

нет

start_minute

integer

нет

end_minute

integer

нет

start_dow

integer

нет

start_hour

integer

нет

end_hour

integer

нет

month

integer

нет

end_dow

integer

нет

end_datetime

string

нет

end_mday

integer

нет

start_mday

integer

нет

Поля ответа

Имя

Тип

timezone

string

conditions

array [interval_condition]

id

integer

client_id

integer

name

string

Ресурс interval_condition

Имя

Тип

Обязательный

start_datetime

string

нет

start_minute

integer

нет

end_minute

integer

нет

start_dow

integer

нет

start_hour

integer

нет

end_hour

integer

нет

month

integer

нет

end_dow

integer

нет

end_datetime

string

нет

end_mday

integer

нет

start_mday

integer

нет

GET /client/{client_id}/interval/{interval_id}

Получить interval

Параметры URL

Имя

Тип

client_id

string

interval_id

integer

Поля ответа

Имя

Тип

timezone

string

conditions

array [interval_condition]

id

integer

client_id

integer

name

string

Ресурс interval_condition

Имя

Тип

Обязательный

start_datetime

string

нет

start_minute

integer

нет

end_minute

integer

нет

start_dow

integer

нет

start_hour

integer

нет

end_hour

integer

нет

month

integer

нет

end_dow

integer

нет

end_datetime

string

нет

end_mday

integer

нет

start_mday

integer

нет

DELETE /client/{client_id}/interval/{interval_id}

Удалить interval

Параметры URL

Имя

Тип

client_id

string

interval_id

integer

Поля ответа

Имя

Тип

timezone

string

conditions

array [interval_condition]

id

integer

client_id

integer

name

string

Ресурс interval_condition

Имя

Тип

Обязательный

start_datetime

string

нет

start_minute

integer

нет

end_minute

integer

нет

start_dow

integer

нет

start_hour

integer

нет

end_hour

integer

нет

month

integer

нет

end_dow

integer

нет

end_datetime

string

нет

end_mday

integer

нет

start_mday

integer

нет

Раздел "группа добавочных"

Раздел "добавочный"

GET /extension/{extension_id}/interval/

Получить interval list

Параметры URL

Имя

Тип

extension_id

string

Параметры запроса

Имя

Тип

timezone

array [string]

name

array [string]

id

array [integer]

Поля ответа

Имя

Тип

dealer_id

integer

name

string

client_id

integer

timezone

string

conditions

array [interval_condition]

id

integer



Теги по теме