Формулировка проблемы: для реализации нового модуля «Документы» в мобильном клиенте требуется реализовать API для получения информации о документе.
Связанные задачи: при реализации данной задачи
необходимо учитывать метод
API /rest/api/workflow/works_by_id
.
Решение: необходимо реализовать новый метод API, который должен позволять получать информацию о документе.
URL
метода:
rest/api/docflow/doc/document_info
. Типа запроса:
GET
.
Метод принимает следующие параметры (строка):
documentID
- UUID
документа (обяз.);
locale
- локаль пользователя,
ru/en/kz
(не обяз., по умолчанию
ru
).
Альтернативные потоки событий:
если параметр documentID
не передан, либо он
пустой, сервер вернет сообщение «Не передан параметр
documentID
», информация о документе не
возвращается;
если передан некорректный параметр
documentID
, сервер вернет сообщение
«Некорректный параметр documentID
»,
информация о документе не возвращается.
Метод возвращает json
со следующими полями:
name
- краткое содержание документа;
content
- значащее содержимое документа;
documentID
- UUID
документа;
number
- номер документа;
author
- Фамилия И.О.
автора документа;
docTypeID
- тип журнала
(INTERNAL
- внутренний,
INNER
- входящий, OUT
-
исходящий);
user
- Фамилия И.О.
пользователя, которому отписан документ;
regUser
- Фамилия И.О.
пользователя, зарегистрировавшего документ;
resUsers
- Фамилия И.О.
пользователей, у которых документ находится на исполнении;
to
- Фамилия И.О.
адресатов;
from
- Фамилия И.О.
адресантов;
type
- тип документа
(DOCUMENT
- документ,
EMAIL
- письмо);
correspondent
- корреспондент;
correspondentOrg
- корреспондент (орг);
createDate
- время и дата создания документа
в формате yyyy-MM-dd HH:mm:ss
;
regDate
- время и дата регистрации документа
в формате yyyy-MM-dd HH:mm:ss
;
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
- нет);
bases
- массив UUID
оснований документа;
actions
- массив UUID
незавершённых работ по документу текущего пользователя.
Пример возвращаемого массива
[ { "name": "документ", "content": "", "documentID": "5373d189-e2d9-47d7-a4ac-67e5932ff3e5", "number": "", "author": "Абдрешен Л.С.", "docTypeID": "", "user": "", "regUser": "", "resUsers": "", "to": "", "from": "", "correspondent": "", "correspondentOrg": "", "type": "DOCUMENT", "createDate": "2014-12-29 15:28:00", "regDate": "", "statusID": "DRAFT", "isExpired": "false", "isSoonExpired": "true", "hasChildren": "false", "hasResolution": "false", "isNew": "false", "hidden": "false", "registered": "false", "finished": "false", "inProgress": "false", "controlled": "false", "hasAttachments": "false", "defective": "false", "bases": ["f40b665c-f1f4-40b3-bdc5-291911def539"], "actions": ["8194d282-5da1-42fe-95f3-a3db09597a29"] } ]