You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
3.1 KiB
74 lines
3.1 KiB
1 month ago
|
@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
|