Формулировка проблемы: для реализации нового модуля «Документы» в мобильном клиенте требуется реализовать API для работы с вложениями.
Решение: необходимо реализовать четыре новых
метода API
, позволяющих:
добавлять вложения к документу;
удалять вложения из документа;
возвращать неполный список вложений;
возвращать полный список вложений.
Метод, позволяющий добавлять вложения к документу
Метод добавляет вложение к документу из временного файла, загруженного на сервер.
URL
метода:
rest/api/docflow/doc/attachment/create
. Типа
запроса: POST
.
Метод принимает следующие строковые параметры:
documentID
- UUID
документа (обяз.);
path
- контейнер, в который необходимо
добавить файл (не обяз.):
ase:attachmentContainer
- «Вложения», по
умолчанию;
ase:workContainer
- «Прочие»;
filePath
- путь к временному файлу,
загруженному на сервер (обяз.);
Примечание: для загрузки файла во временное
хранилище необходимо вызвать метод
rest/api/storage/start_upload
.
fileName
- название загружаемого файла
(обяз.);
locale
- локаль пользователя,
ru/en/kz
(не обяз., по умолчанию
ru
).
В случае успешного выполнения метода сервер вернет сообщение «Файл добавлен».
Альтернативные потоки событий:
если параметр documentID
не передан, либо он
пустой, сервер вернет сообщение «Не передан параметр
documentID
», вложения не добавятся;
если передан некорректный параметр
documentID
, сервер вернет сообщение
«Некорректный параметр documentID
», вложения
не добавятся;
если параметр fileName
не передан, либо он
пустой, сервер вернет сообщение «Не передан параметр
fileName
», вложения не добавятся;
если параметр filePath
не передан, либо он
пустой, сервер вернет сообщение «Не передан параметр
filePath
», вложения не добавятся;
в случае неуспешного выполнения метода сервер вернет сообщение «Ошибка добавления файла».
Метод, позволяющий удалять вложения из документа
URL
метода:
rest/api/docflow/doc/attachment/remove
. Типа
запроса: GET
.
Метод принимает следующие строковые параметры:
fileUUID
- UUID
файла,
который необходимо удалить (обяз.);
locale
- локаль пользователя,
ru/en/kz
(не обяз., по умолчанию
ru
).
В случае успешного выполнения метода сервер вернет сообщение «Файл удален».
Альтернативные потоки событий:
если параметр fileUUID
не передан, либо он
пустой, сервер вернет сообщение «Не передан параметр
fileUUID
», вложения не удаляются;
если передан некорректный параметр fileUUID
,
сервер вернет сообщение «Некорректный параметр
fileUUID
», вложения не удаляются;
в случае неуспешного выполнения метода сервер вернет сообщение «Ошибка удаления файла».
Метод, возвращающий неполный список вложений
Метод должен возвращать список последних добавленных вложений (из двух групп «Вложения» и «Прочие»), отсортированный в обратном порядке по дате добавления.
URL
метода:
rest/api/docflow/doc/last_attachments
. Типа
запроса: GET
.
Метод принимает следующие строковые параметры:
documentID
- UUID
документа (обяз.);
count
- количество файлов, которые должны
быть возвращены (не обяз., по умолчанию 3
);
getCounters
- возвращать ли общее количество
вложений документа (не обяз., true
- да,
false
- нет, по умолчанию);
locale
- локаль пользователя,
ru/en/kz
(не обяз., по умолчанию
ru
).
Альтернативные потоки событий:
если параметр documentID
не передан, либо он
пустой, сервер вернет сообщение «Не передан параметр
documentID
», список не возвращается;
если передан некорректный параметр
documentID
, сервер вернет сообщение
«Некорректный параметр documentID
», список не
возвращается.
Метод возвращает json
со следующими полями:
uuid
- UUID
файла;
name
- название файла;
is_editable
- возможно ли изменять/удалять
файл (true
- да, false
-
нет);
created_label
- время создания файла для
отображения в ARTA Synergy
;
created
- время создания файла в формате
yyyy-MM-dd HH:mm:ss
;
icon
- URL
изображения для
предпросмотра (в случае его отсутствия - URL
иконки типа файла).
Метод, возвращающий полный список вложений
Метод должен возвращать список всех вложений (из двух групп «Вложения» и «Прочие»), отсортированный в обратном порядке по дате добавления.
URL
метода:
rest/api/docflow/doc/attachments
. Типа запроса:
GET
.
Метод принимает следующие строковые параметры:
documentID
- UUID
документа (обяз.);
locale
- локаль пользователя,
ru/en/kz
(не обяз., по умолчанию
ru
).
Альтернативные потоки событий:
если параметр documentID
не передан, либо он
пустой, сервер вернет сообщение «Не передан параметр
documentID
», список не возвращается;
если передан некорректный параметр
documentID
, сервер вернет сообщение
«Некорректный параметр documentID
», список не
возвращается.
Метод возвращает json
с двумя массивами:
attachments
- «Вложения»;
work_files
- «Прочие».
Каждый массив описывается следующими полями:
uuid
- UUID
файла;
name
- название файла;
is_editable
- возможно ли изменять/удалять
файл (true
- да, false
-
нет);
created_label
- время создания файла для
отображения в ARTA Synergy
;
created
- время создания файла в формате
yyyy-MM-dd HH:mm:ss
;
icon
- URL
изображения для
предпросмотра (в случае его отсутствия - URL
иконки типа файла).
Альтернативные потоки событий:
если параметр documentID
не передан, либо он
пустой, сервер вернет сообщение «Не передан параметр
documentID
», список не возвращается;
если передан некорректный параметр
documentID
, сервер вернет сообщение
«Некорректный параметр documentID
», список не
возвращается.
Пример возвращаемых массивов
Метод, возвращающий неполный список вложений:
если getCounters=true:
{ "list": [ { "uuid": "5db2c3c9-942e-4470-a0aa-3bfa63bad45e", "name": "jbpmdb.sql", "is_editable": "true", "created_label": "2014-12-29 15:38:44", "created": "2014-12-29 15:38:44", "icon": "rest/api/storage/icons/get?aiType=ai_text&fileName=jbpmdb.sql" }, { "uuid": "a8d1a6a9-1b88-4c18-a536-18aaad3919e0", "name": "synergy.sql", "is_editable": "true", "created_label": "2014-12-29 15:38:44", "created": "2014-12-29 15:38:44", "icon": "rest/api/storage/icons/get?aiType=ai_text&fileName=synergy.sql" }, { "uuid": "14de1194-8b06-4c8f-a6f5-30226a508d42", "name": "Тестовый шаблон Даты с активным редактированием.asfdocx", "is_editable": "true", "created_label": "2014-12-29 15:28:42", "created": "2014-12-29 15:28:42", "icon": "rest/api/storage/icons/get?aiType=ai_application&fileName=Тестовый шаблон Даты с активным редактированием.asfdocx" } ], "count": "3" }
если getCounters=false:
[ { "uuid": "5db2c3c9-942e-4470-a0aa-3bfa63bad45e", "name": "jbpmdb.sql", "is_editable": "true", "created_label": "2014-12-29 15:38:44", "created": "2014-12-29 15:38:44", "icon": "rest/api/storage/icons/get?aiType=ai_text&fileName=jbpmdb.sql" }, { "uuid": "a8d1a6a9-1b88-4c18-a536-18aaad3919e0", "name": "synergy.sql", "is_editable": "true", "created_label": "2014-12-29 15:38:44", "created": "2014-12-29 15:38:44", "icon": "rest/api/storage/icons/get?aiType=ai_text&fileName=synergy.sql" }, { "uuid": "14de1194-8b06-4c8f-a6f5-30226a508d42", "name": "Тестовый шаблон Даты с активным редактированием.asfdocx", "is_editable": "true", "created_label": "2014-12-29 15:28:42", "created": "2014-12-29 15:28:42", "icon": "rest/api/storage/icons/get?aiType=ai_application&fileName=Тестовый шаблон Даты с активным редактированием.asfdocx" } ]
Метод, возвращающий полный список вложений:
{ "attachments": [ { "uuid": "d55ae76a-f451-452d-93cb-3c6b28ba2335", "name": "Изображение.jpg", "is_editable": "true", "created_label": "15 минут назад", "created": "2013-06-26 09:12:54", "icon": "preview?identifier=d55ae76a-f451-452d-93cb-3c6b28ba2335" } ], "work_files": [ { "uuid": "d55ae76a-f451-452d-93cb-3c6b28ba2332", "name": "Документ.doc", "is_editable": "true", "created_label": "15 минут назад", "created": "2013-06-26 09:12:54", "icon": "preview?identifier=d55ae76a-f451-452d-93cb-3c6b28ba2332" } ] }