Формулировка проблемы: для реализации нового модуля «Документы» в мобильном клиенте требуется реализовать 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"
}
]
}