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