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