Задача [API59]: Действия с папками и файлами хранилища

Формулировка проблемы: для реализации задач мобильного клиента необходимо релизовать API-методы, позволяющие выполнять следующие базовые действия с элементами хранилища: добавление файлов, создание папки, переименование, перемещение и удаление файла/папки, а также добавление файла из хранилища к документу.

Решение: необходимо реализовать следующие методы API:

Добавление файла в хранилище

URL метода: rest/api/storage/add.

Тип запроса: POST.

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

  • folderID - идентификатор папки, в которую необходимо добавить файл (обяз.);

  • path - временный путь до файла (обяз.);

  • name - название файла (обяз.);

  • locale - локаль пользователя, ru/en/kz (не обяз., по умолчанию ru).

Значением параметра path должен быть результат выполнения метода API rest/api/storage/start_upload.

В случае успешного выполнения метода сервер вернет сообщение Действие выполнено, а таже идентификатор только что добавленного файла (fileID).

В случае неуспешного выполнения вовзращается json с полями:

  • errorCode - код выполнения (число, отличное от 0);

  • errorMessage - сообщение об ошибке (см. ниже).

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

  • Альтернативный поток №1. Параметр folderID не передан, либо он пустой. Сервер возвращает ошибку:

    Не передан параметр folderID

    действие не осуществляется;

  • Альтернативный поток №2. Передан некорректный (несуществующий) параметр folderID. Сервер возвращает ошибку:

    Передан некорректный параметр folderID

    действие не осуществляется;

  • Альтернативный поток №3. Параметр path не передан, либо он пустой. Сервер возвращает ошибку:

    Не передан параметр path

    действие не осуществляется;

  • Альтернативный поток №4. Передан некорректный (несуществующий) параметр path. Сервер возвращает ошибку:

    Передан некорректный параметр path

    действие не осуществляется;

  • Альтернативный поток №5. Параметр name не передан, либо он пустой. Сервер возвращает ошибку:

    Не передан параметр name

    действие не осуществляется;

  • Альтернативный поток №6. Параметр name содержит некорректные символы. Сервер возвращает ошибку:

    Передан некорректный параметр name

    действие не осуществляется;

  • Альтернативный поток №7. Параметр name совпадает с названием уже существующего файла в folderID. Сервер возвращает ошибку:

    Файл %название% уже существует. Выберите другое имя

    действие не осуществляется;

  • Альтернативный поток №8. Отсутствует право добавления нового элемента хранилища. Сервер возвращает ошибку:

    Недостаточно прав для выполнения действия

    действие не осуществляется.

Пример возвращаемого массива

{
    "fileID": "e882b14a-bf4d-432f-9fc6-5c6cf7e77bcd"
}
Создание папки хранилища

URL метода: rest/api/storage/create.

Тип запроса: POST.

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

  • folderID - идентификатор родительской папки, в которой необходимо создать новую папку (обяз.);

  • folderName - название создаваемой папки (обяз.);

  • locale - локаль пользователя, ru/en/kz (не обяз., по умолчанию ru).

В случае успешного выполнения метода сервер вернет сообщение Действие выполнено, а таже идентификатор только что созданной папки (folderID).

В случае неуспешного выполнения вовзращается json с полями:

  • errorCode - код выполнения (число, отличное от 0);

  • errorMessage - сообщение об ошибке (см. ниже).

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

  • Альтернативный поток №1. Параметр folderID не передан, либо он пустой. Сервер возвращает ошибку:

    Не передан параметр folderID

    действие не осуществляется;

  • Альтернативный поток №2. Передан некорректный (несуществующий) параметр folderID. Сервер возвращает ошибку:

    Передан некорректный параметр folderID

    действие не осуществляется;

  • Альтернативный поток №3. Параметр folderName не передан, либо он пустой. Сервер возвращает ошибку:

    Не передан параметр folderName

    действие не осуществляется;

  • Альтернативный поток №4. Параметр folderName содержит некорректные символы. Сервер возвращает ошибку:

    Введите корректное название папки

    действие не осуществляется;

  • Альтернативный поток №5. Параметр folderName совпадает с названием уже существующей папки в folderID. Сервер возвращает ошибку:

    Папка с таким названием уже существует

    действие не осуществляется;

  • Альтернативный поток №6. Отсутствует право добавления нового элемента хранилища. Сервер возвращает ошибку:

    Недостаточно прав для выполнения действия

    действие не осуществляется.

Пример возвращаемого массива

{
    "folderID": "e882b14a-bf4d-432f-9fc6-5c6cf7e77bcd"
}
Переименование элемента хранилища

URL метода: rest/api/storage/rename.

Тип запроса: POST.

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

  • elementID - идентификатор папки или файла (обяз.);

  • elementName - новое название папки или файла (обяз.);

  • locale - локаль пользователя, ru/en/kz (не обяз., по умолчанию ru).

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

В случае неуспешного выполнения вовзращается json с полями:

  • errorCode - код выполнения (число, отличное от 0);

  • errorMessage - сообщение об ошибке (см. ниже).

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

  • Альтернативный поток №1. Параметр elementID не передан, либо он пустой. Сервер возвращает ошибку:

    Не передан параметр elementID

    действие не осуществляется;

  • Альтернативный поток №2. Передан некорректный (несуществующий) параметр elementID. Сервер возвращает ошибку:

    Передан некорректный параметр elementID

    действие не осуществляется;

  • Альтернативный поток №3. Параметр elementName не передан, либо он пустой. Сервер возвращает ошибку:

    Не передан параметр elementName

    действие не осуществляется;

  • Альтернативный поток №4. Параметр elementName содержит некорректные символы. Сервер возвращает ошибку:

    Введите корректное название элемента

    действие не осуществляется;

  • Альтернативный поток №5. Параметр elementName совпадает с названием уже существующего элемента в данной же папке. Сервер возвращает ошибку:

    Элемент '%название%' уже существует. Выберите другое имя

    действие не осуществляется;

  • Альтернативный поток №6. Отсутствует право переименования элемента хранилища. Сервер возвращает ошибку:

    Недостаточно прав для выполнения действия

    действие не осуществляется.

Перемещение элемента хранилища

URL метода: rest/api/storage/move.

Тип запроса: POST.

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

  • elementID - идентификатор перемещаемой (-ого) папки или файла (обяз.);

  • folderID - идентификатор папки, куда переносится elementID (обяз.);

  • locale - локаль пользователя, ru/en/kz (не обяз., по умолчанию ru).

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

В случае неуспешного выполнения вовзращается json с полями:

  • errorCode - код выполнения (число, отличное от 0);

  • errorMessage - сообщение об ошибке (см. ниже).

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

  • Альтернативный поток №1. Параметр elementID не передан, либо он пустой. Сервер возвращает ошибку:

    Не передан параметр elementID

    действие не осуществляется;

  • Альтернативный поток №2. Передан некорректный (несуществующий) параметр elementID. Сервер возвращает ошибку:

    Передан некорректный параметр elementID

    действие не осуществляется;

  • Альтернативный поток №3. Параметр folderID не передан, либо он пустой. Сервер возвращает ошибку:

    Не передан параметр folderID

    действие не осуществляется;

  • Альтернативный поток №4. Передан некорректный (несуществующий) параметр folderID. Сервер возвращает ошибку:

    Передан некорректный параметр folderID

    действие не осуществляется;

  • Альтернативный поток №5. Название перемещаемого элемента совпадает с уже существующим в folderID. Сервер возвращает ошибку:

    Объект уже существует

    действие не осуществляется;

  • Альтернативный поток №6. Отсутствует право перемещения элемента хранилища. Сервер возвращает ошибку:

    Недостаточно прав для выполнения действия

    действие не осуществляется.

Удаление элемента хранилища

URL метода: rest/api/storage/remove.

Тип запроса: POST.

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

  • elementID - идентификатор удаляемой(-ого) папки или файла (обяз.);

  • locale - локаль пользователя, ru/en/kz (не обяз., по умолчанию ru).

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

В случае неуспешного выполнения вовзращается json с полями:

  • errorCode - код выполнения (число, отличное от 0);

  • errorMessage - сообщение об ошибке (см. ниже).

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

  • Альтернативный поток №1. Параметр elementID не передан, либо он пустой. Сервер возвращает ошибку:

    Не передан параметр elementID

    действие не осуществляется;

  • Альтернативный поток №2. Передан некорректный (несуществующий) параметр elementID. Сервер возвращает ошибку:

    Передан некорректный параметр elementID

    действие не осуществляется;

  • Альтернативный поток №3. Отсутствует право удаления элемента хранилища. Сервер возвращает ошибку:

    Недостаточно прав для выполнения действия

    действие не осуществляется.

Добавление файла из хранилища к документу

URL метода: rest/api/storage/copy.

Тип запроса: POST.

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

  • fileID - идентификатор файла в хранилище (обяз.);

  • documentID - идентификатор документа, куда необходимо скопировать файл (обяз.);

  • container - папка документа (не обяз.):

    • attachmentContainer - «Приложения» (по умолчанию);

    • workContainer - «Прочие»;

  • locale - локаль пользователя, ru/en/kz (не обяз., по умолчанию ru).

В случае успешного выполнения метода сервер вернет сообщение Действие выполнено, а таже идентификатор только что добавленного файла (fileID).

В случае неуспешного выполнения вовзращается json с полями:

  • errorCode - код выполнения (число, отличное от 0);

  • errorMessage - сообщение об ошибке (см. ниже).

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

  • Альтернативный поток №1. Параметр fileID не передан, либо он пустой. Сервер возвращает ошибку:

    Не передан параметр fileID

    действие не осуществляется;

  • Альтернативный поток №2. Передан некорректный (несуществующий) параметр fileID. Сервер возвращает ошибку:

    Передан некорректный параметр fileID

    действие не осуществляется;

  • Альтернативный поток №3. Параметр documentID не передан, либо он пустой. Сервер возвращает ошибку:

    Не передан параметр documentID

    действие не осуществляется;

  • Альтернативный поток №4. Передан некорректный (несуществующий) параметр documentID. Сервер возвращает ошибку:

    Передан некорректный параметр documentID

    действие не осуществляется;

  • Альтернативный поток №5. Для значения attachmentContainer параметра container отсутствует доступ к папке «Приложения». Сервер возвращает ошибку:

    Недостаточно прав для выполнения действия

    действие не осуществляется;

  • Альтернативный поток №6. Не передан, либо передан некорректный (несуществующий) параметр container. Сервер не возвращает ошибку, но выполняет действие со значением по умолчанию.

Пример возвращаемого массива

{
    "fileID": "550e8400-e29b-41d4-a716-446655440000"
}