Формулировка проблемы: нет возможности получить статусы календаря определенного пользователя.
Решение: необходимо реализовать API метод, который возвращает все периоды с назначенным статусом для указанного пользователя.
URL метода:
/rest/api/userchooser/getUserCalendarStatus
Тип запроса: GET
.
Метод принимает следующие входные параметры:
userID
- uuid
пользователя
(обяз.);
date
- дата в формате
yyyy-MM-dd
(необяз., по умолчанию принимает
значение текущей даты в системе). Если передана некорректная
дата, то в качестве значения этого параметра используется
текущая дата;
locale
(не обяз.) - код локали (при
отсутствии параметра используется
язык
системы по умолчанию).
Метод возвращает все периоды пользователя с назначенным статусом, которые попадают на указанный день.
В случае успешного выполнения метод возвращает массив JSON, состоящий из следующих полей:
type
- тип статуса;
status
- тип занятости в данный период.
Принимает следующие значения:
busy
- занят в каждый день периода,
standart
- обычное рабочее время,
free
- свободен в каждый день периода;
color
- цвет статуса;
title
- название статуса;
statusLabel
- название статуса пользователя;
startDate
- дата начала периода;
finishDate
- дата завершения периода;
makeVacant
- признак занятости штатной
единицы. Принимает следующие значения:
0 - пользователь с таким статусом занимает штатную единицу на период действия статуса;
1 - пользователь с таким статусом не занимает штатную единицу на период действия статуса.
Пример запроса:
rest/api/userchooser/getUserCalendarStatus?userID=407d94f5-c8dd-469d-8328-ae426f04dbd4
Пример возвращаемого массива JSON:
[ { "type": 0, "status": "free", "color": "#5462ef", "title": "Отпуск", "statusLabel": "В отпуске с {date.start} по {date.finish}", "startDate": "2016-12-29", "finishDate": "2016-12-31" "makeVacant": 0 }, { "type": 0, "status": "free", "color": "#5462ef", "title": "Отпуск", "statusLabel": "В отпуске с {date.start} по {date.finish}", "startDate": "2016-12-30", "finishDate": "2016-01-04" "makeVacant": 0 } ]
Альтернативные потоки событий
Альтернативный поток №1. Не передан или передан некорректный
параметр userID
. Сервер возвращает ошибку 400 с
сообщением:
{ "errorCode" : 3, "errorMessage" : "Не передан или передан некорректный параметр userID" }