группа микросервисов, для автоматизации деятельности отдела технологического сопровождения обучения
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

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