@startuml title "USECASE: teh.storage" allowmixing left to right direction ' пользователи actor "Пользователь" as user actor "Стороний сервис" as service ' возможности использования usecase "получение сведений о корневой директории" as getRoot usecase "Загрузка файла на сервер" as upload usecase "Загрузка файлов на сервер пакетом" as uploads usecase "Скачивание файла с сервера" as download usecase "Удаление файла с сервера" as delete usecase "Просмотр/получение перечня файлов на сервере" as list usecase "Просмотр/получение сведений о файле" as fileInfo usecase "Настройка параметров просмотра файла (xlsx)" as setParams usecase "Просмотр/получение содержимого файла (xlsx)" as viewXlsx ' FACE user --> upload user --> uploads user --> download user --> delete user --> list user --> fileInfo user --> setParams user --> viewXlsx ' REST API upload <-- service : "POST /api/v1/files/store" uploads <-- service : "POST /api/v1/files/store-multiple" download <-- service : "GET /api/v1/files/download" delete <-- service : "DELETE /api/v1/files/delete" list <-- service : "GET /api/v1/files" fileInfo <-- service : "получаем с пусой страницей xlsxPage" viewXlsx <-- service : "GET /api/v1/files/xlsx" getRoot <-- service : "GET /api/v1/root" json "Сведения о файле" as fileMetadata { "name":"наименование файла", "extension":["xlsx", "pdf", "..."], "rootPath": "/app/storage/uploads", "relativePath":"/filename.xlsx", "absolutePath":"/app/storage/uploads/filename.xlsx", "size":"размер файла в байтах", "createdDate":"время создания файла", "lastModifiedDate":"время последнего изменения файла", "owner":"пользователь - владелец файла", "type": "файл или директория", "permissions": "права, установленные файлу на сервере" } json "Содержимое файла" as page { "content":"выборка данных xlsx", "metadata":"FileMetadata", "pageSize": "размер страницы", "pageNumber": "номер страницы", "offset": "смещение", "headerLine": "номер строки с заголовками", "last": "является ли последней страницей", "first": "является ли первой страницей", "hasNext": "имеется ли следующая страница", "hasPrevious": "имеется ли предыдущая страница", "totalLines": "всего строк в xlsx-файле", "totalColumns": "всего столбцов", "totalPages": "всего страниц" } fileInfo --{ fileMetadata viewXlsx --{ page @enduml