Формулировка проблемы: сейчас при использовании
API метода /rest/api/settings/calendar
в
возвращаемых результатах нет информации о типе периода: стандартный,
нестандартный, нерабочий. Данная информация требуется для получения
праздничных дней при формировании табеля учета рабочего времени.
Связанные задачи: 0381-API получения настроек календаря
Решение: необходимо доработать метод API
/rest/api/settings/calendar
, добавив входной
параметр type
, который обозначает тип периода
(необяз.). Данный параметр принимает следующие значения:
standard
- возвращаются результаты, тип
периода которых стандартный.
custom
- возвращаются результаты, тип периода
которых нестандартный.
holiday
- возвращаются результаты, тип
периода которых нерабочий.
Если пользователь в запросе не указывает данный параметр, то по умолчанию возвращаются все результаты вне зависимости от типа периода.
Тип запроса не изменяется.
В выходные параметры необходимо добавить параметр
type
- тип периода. Данный параметр принимает
одно из значений:
standard
- стандартное время;
custom
- нестандартное время;
holiday
- нерабочий день.
Замечание
Так как нам необходимо выводить тип периода для каждого дня, а менять структуру вывода для уже реализованного метода мы без крайней необходимости не можем, то для тех дней, в которых нет рабочих часов, в массиве всё равно присутствует блок
{ "type": "holiday" } (для специально назначенных выходных) или
{ "type": "standard" } (для обычных выходных по стандартному календарю).
Пример запроса без указания параметра type
:
rest/api/settings/calendar?date_start=2016-05-01&date_finish=2016-05-04
Пример ответа на запрос без указания параметра
type
:
{ "2015-05-01": [ { "type": "holiday" } ], "2015-05-02": [ { "type": "custom" } ], "2015-05-03": [ { "type" : "standard" } ], "2015-05-04": [ { "start": "09:00", "finish": "13:00", "type" : "standard" }, { "start": "14:00", "finish": "18:00", "type" : "standard" } ] }
Пример запроса с указанием параметра type
:
rest/api/settings/calendar?date_start=2016-05-01&date_finish=2016-05-04&type=standard
Пример ответа на запрос с указанием параметра
type
:
{ "2015-05-03": [ { "type" : "standard" } ], "2015-05-04": [ { "start": "09:00", "finish": "13:00", "type" : "standard" }, { "start": "14:00", "finish": "18:00", "type" : "standard" } ] }
Альтернативные потоки событий:
Необходимо добавить к существующим альтернативным потокам следующий:
Альтернативный поток №5. Передан параметр type
,
несоответствующий ни одному из возможных значений. Сервер возвращает
ошибку HTTP 400 с сообщением:
{ "errorCode": 13, "errorMessage": "Параметр type не соответствует ни одному из возможных значений" }
действие не выполняется.