Формулировка проблемы: для реализации нового модуля «Документы» в мобильном клиенте требуется реализовать API для получения списка документов.
Решение: необходимо реализовать новый метод API, который должен позволять получать список документов.
URL
метода:
rest/api/docflow/doc/documents
. Типа запроса:
GET
.
Метод принимает следующие параметры:
filterType
(не обяз.):
REGISTER_FILTER
- документы журнала
(отображаются только пользователям с ролью «Сотрудник
канцелярии» с соответствующими правами);
DOCFILE_FILTER
- документы дел
(отображаются пользователям с ролью «Сотрудник канцелярии»,
а также пользователям с настроенным отображением
определенного дела для каждого из настроенных типов
документов);
ALL_USER_DOCUMENTS
- все документы к
которым пользователь имеет доступ;
USER_OWN_DOCUMENTS
- все собственные
документы пользователя;
USER_RECEIVED_DOCUMENTS
- все полученные
пользователем документы;
USER_SENT_DOCUMENTS
- все отправленные
пользователем документы;
filterID
- UUID фильтра (не обяз.);
objectID
- UUID объекта фильтра (не обяз.);
pageNumber
- номер страницы (не обяз., по
умолчанию, 0
);
countInPart
- количество отображаемых
документов (не обяз., по умолчанию, 30
);
locale
- локаль пользователя,
ru/en/kz
(не обяз., по умолчанию
ru
).
Альтернативные потоки событий:
при отсутствии введенных параметров метод возвращает список документов первого фильтра в списке доступных пользователю («Мои», «Дела», либо «Журналы»);
если пользователь не имеет прав на просмотр документов определенного узла, система отображает пустой массив;
при вводе невалидного параметра filterType
система выдает ошибку «Неправильный
filterType
», список не возвращается;
при вводе невалидного параметра filterID
,
либо objectID
система выдает ошибку
«Неправильный filterID/objectID
», список не
возвращается.
Метод возвращает json
со следующими полями:
name
- краткое содержание документа;
content
- значащее содержимое документа;
documentID
- UUID документа;
number
- номер документа;
author
- Фамилия И.О.
автора документа;
user
- Фамилия И.О.
пользователя, которому отписан документ;
regUser
- Фамилия И.О.
пользователя, зарегистрировавшего документ;
resUsers
- Фамилия И.О.
пользователей, у которых документ находится на исполнении;
to
- Фамилия И.О.
адресатов;
from
- Фамилия И.О.
адресантов;
type
- тип документа
(DOCUMENT
- документ,
EMAIL
- письмо);
correspondent
- корреспондент;
correspondentOrg
- корреспондент (орг);
createDate
- время и дата создания документа
в формате DD.MM.YY hh:mm
;
regDate
- время и дата регистрации документа
в формате DD.MM.YY hh:mm
;
statusID
- статус документа
(NOT_STARTED
- на регистрации,
IN_PROGRESS
- на исполнении,
FINISHED
- завершен, DRAFT
- черновик, REJECTED
- отклонен);
inProgress
- находится ли документ в процессе
(true
- да, false
- нет);
hasChildren
- имеет ли документ дочерние
документы (true
- да,
false
- нет);
isNew
- есть ли изменения в документе,
непросмотренные пользователем (true
- да,
false
- нет);
hasResolution
- наложена ли резолюция на
данный документ (true
- да,
false
- нет);
hidden
- скрыт ли документ
(true
- да, false
- нет);
registered
- зарегистрирован ли документ
(true
- да, false
- нет);
finished
- завершен ли документ
(true
- да, false
- нет);
controlled
- является ли документ контрольным
(true
- да, false
- нет);
hasAttachments
- имеет ли документ вложения
(true
- да, false
- нет);
defective
- бракованный ли документ
(true
- да, false
- нет);
isExpired
- хотя бы одна работа по маршруту
документа просрочена (true
- да,
false
- нет);
isSoonExpired
- хотя бы у одной работы по
маршруту документа истекает срок (true
- да,
false
- нет).
Примечание: поля «От» и «Кому» заполняются по количеству произведенных соответствующих действий, в обратном порядке; если один и тот же пользователь выполнял действие несколько раз подряд, то оставляется только одна запись.
Пример возвращаемого массива
[ { "name": "for api testing 123456, метод: /rest/api/docflow/doc/save_resolution", "content": "", "documentID": "f40b665c-f1f4-40b3-bdc5-291911def539", "number": "{№ Вн.документа}-30-Apr-13", "author": "Бобров С.Е.", "user": "Абдрешен Л.С.", "regUser": "", "resUsers": "", "to": "", "from": "", "correspondent": "", "correspondentOrg": "", "type": "DOCUMENT", "createDate": "2014-10-20 11:09:00", "regDate": "", "statusID": "NOT_STARTED", "isExpired": "true", "isSoonExpired": "true", "hasChildren": "true", "hasResolution": "false", "isNew": "false", "hidden": "false", "registered": "false", "finished": "false", "inProgress": "false", "controlled": "false", "hasAttachments": "true", "defective": "false" } ]