Формулировка проблемы: необходимо
реализовать метод API, который будет пересылать документ
пользователю, группе либо на указанные e-mail'ы, используя процесс
системы «Переслать» (send-document
).
Решение.
Необходимо реализовать следующий метод:
URL метода: rest/api/docflow/doc/send
.
Тип запроса: POST
.
Метод принимает следующие параметры (json):
documentID
- uuid документа, который
необходимо переслать (обяз.);
users
- массив uuid пользователей, которым
необходимо переслать документ;
groups
- массив uuid групп пользователей,
которым необходимо переслать документ;
emails
- массив произвольных e-mail, которым
необходимо переслать документ;
locale
(не обяз.) - код локали (при
отсутствии параметра используется
язык
системы по умолчанию).
Один из параметров users
/
groups
/ emails
должен быть
передан обязательно.
Пользователь, от имени которого производится действие, должен иметь настроенный почтовый аккаунт.
Метод возвращает json-объект с полями:
errorCode
- код выполнения:
0 - успешно
иначе - ошибка
errorMessage
- сообщение о результате
выполнения (успешном либо неуспешном).
Пример передаваемого запроса:
{ "documentID": "7ce1feff-a3f0-4f4e-8bf6-59e37caf553f", "users": ["7b953be8-bddb-4ce4-bbfd-ae9548f69c7f", "e65f62fa-7045-4b5b-b61d-46ca00ea7af1"], "groups": [1, 5, 7], "emails": ["bobrov@arta.kz"] }
Пример возвращаемого json-объекта при успешном выполнении метода:
{ "errorCode": 0, "errorMessage": "Документ отправлен" }
Альтернативные потоки событий
Альтернативный поток №1. Не передан либо
передан некорректный (несуществующий) параметр
documentID
. Сервер возвращает ошибку HTTP 400 с
сообщением:
{ "errorCode": 3, "errorMessage": "Не передан либо передан некорректный параметр documentID" }
действие не выполняется.
Альтернативный поток №2. Передан такой параметр
documentID
, на который у отправителя нет прав.
Сервер возвращает ошибку HTTP 403 с сообщением:
{ "errorCode": 2, "errorMessage": "Вам запрещен доступ к этому документу" }
действие не выполняется.
Альтернативный поток №3. Не передан хотя бы
один из параметров users
/
groups
/ emails
. Сервер
возвращает ошибку HTTP 400 с сообщением:
{ "errorCode": 3, "errorMessage": "Не передан параметр 'users', 'groups' либо 'emails'" }
действие не выполняется.
Альтернативный поток №4. Переданы некорректные
параметры users
/ groups
/
emails
(не по формату). Сервер возвращает ошибку
HTTP 400 с сообщением:
{ "errorCode": 3, "errorMessage": "Переданы некорректные параметры" }
действие не выполняется.
Альтернативный поток №5. Переданы некорректные
(несуществующие) идентификаторы пользователей в параметре
users
. Сервер возвращает ошибку HTTP 400 с
сообщением:
{ "errorCode": 3, "errorMessage": "Пользователи с uuid %uuid1%, %uuid2%, ... не найдены" }
действие не выполняется.
Альтернативный поток №6. Переданы
идентификаторы пользователей в параметре users
,
которым запрещена отправка согласно настройки конфигуратора
"Максимальный уровень иерархии вверх, которому можно отправить
документ". Сервер возвращает ошибку HTTP 403 с сообщением:
{ "errorCode": 2, "errorMessage": "Недостаточно прав для отправки документа пользователям %uuid1%, %uuid2%, ..." }
действие не выполняется.
Альтернативный поток №7. Переданы некорректные
(несуществующие) идентификаторы групп в параметре
groups
. Сервер возвращает ошибку HTTP 400 с
сообщением:
{ "errorCode": 3, "errorMessage": "Группы с uuid %uuid1%, %uuid2%, ... не найдены" }
действие не выполняется.
Во всех остальных случаях метод выполняется успешно и запускает
процесс «Переслать» (send-document
). Если у
отправителя не настроен почтовый аккаунт либо передан некорректный
(несуществующий) e-mail получателя, то процесс для них завершится
неуспешно. Для всех корректных получателей, соответственно, успешно.
Примечание.
Если один и тот же пользователь выбран несколько раз (один раз - как пользователь, еще один либо несколько раз - выбрав группы, куда он входит), то действие для него должно выполниться единожды.