Задача [API33]: API для работы с вложениями

Формулировка проблемы: для реализации нового модуля «Документы» в мобильном клиенте требуется реализовать API для работы с вложениями.

Решение: необходимо реализовать четыре новых метода API, позволяющих:

Метод, позволяющий добавлять вложения к документу

Метод добавляет вложение к документу из временного файла, загруженного на сервер.

URL метода: rest/api/docflow/doc/attachment/create. Типа запроса: POST.

Метод принимает следующие строковые параметры:

В случае успешного выполнения метода сервер вернет сообщение «Файл добавлен».

Альтернативные потоки событий:

Метод, позволяющий удалять вложения из документа

URL метода: rest/api/docflow/doc/attachment/remove. Типа запроса: GET.

Метод принимает следующие строковые параметры:

В случае успешного выполнения метода сервер вернет сообщение «Файл удален».

Альтернативные потоки событий:

Метод, возвращающий неполный список вложений

Метод должен возвращать список последних добавленных вложений (из двух групп «Вложения» и «Прочие»), отсортированный в обратном порядке по дате добавления.

URL метода: rest/api/docflow/doc/last_attachments. Типа запроса: GET.

Метод принимает следующие строковые параметры:

Альтернативные потоки событий:

Метод возвращает json со следующими полями:

Метод, возвращающий полный список вложений

Метод должен возвращать список всех вложений (из двух групп «Вложения» и «Прочие»), отсортированный в обратном порядке по дате добавления.

URL метода: rest/api/docflow/doc/attachments. Типа запроса: GET.

Метод принимает следующие строковые параметры:

Альтернативные потоки событий:

Метод возвращает json с двумя массивами:

Каждый массив описывается следующими полями:

Альтернативные потоки событий:

Пример возвращаемых массивов

Метод, возвращающий неполный список вложений:

{
    "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"
}
[
    {
        "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"
        }
    ]
}