Docker/Voltaserve/api/router/storage_router.go
2024-04-17 20:22:30 +02:00

89 lines
2.1 KiB
Go

package router
import (
"voltaserve/errorpkg"
"voltaserve/service"
"github.com/gofiber/fiber/v2"
)
type StorageRouter struct {
storageSvc *service.StorageService
}
func NewStorageRouter() *StorageRouter {
return &StorageRouter{
storageSvc: service.NewStorageService(),
}
}
func (r *StorageRouter) AppendRoutes(g fiber.Router) {
g.Get("/get_account_usage", r.GetAccountUsage)
g.Get("/get_workspace_usage", r.GetWorkspaceUsage)
g.Get("/get_file_usage", r.GetFileUsage)
}
// GetAccountUsage godoc
//
// @Summary Get account usage
// @Description Get account usage
// @Tags Storage
// @Id storage_get_account_usage
// @Produce json
// @Success 200 {object} service.StorageUsage
// @Failure 500
// @Router /storage/get_account_usage [get]
func (r *StorageRouter) GetAccountUsage(c *fiber.Ctx) error {
res, err := r.storageSvc.GetAccountUsage(GetUserID(c))
if err != nil {
return err
}
return c.JSON(res)
}
// GetWorkspaceUsage godoc
//
// @Summary Get workspace usage
// @Description Get workspace usage
// @Tags Storage
// @Id storage_get_workspace_usage
// @Produce json
// @Param id query string true "Workspace ID"
// @Success 200 {object} service.StorageUsage
// @Failure 500
// @Router /storage/get_workspace_usage [get]
func (r *StorageRouter) GetWorkspaceUsage(c *fiber.Ctx) error {
id := c.Query("id")
if id == "" {
return errorpkg.NewMissingQueryParamError("id")
}
res, err := r.storageSvc.GetWorkspaceUsage(id, GetUserID(c))
if err != nil {
return err
}
return c.JSON(res)
}
// GetFileUsage godoc
//
// @Summary Get file usage
// @Description Get file usage
// @Tags Storage
// @Id storage_get_file_usage
// @Produce json
// @Param id query string true "File ID"
// @Success 200 {object} service.StorageUsage
// @Failure 500
// @Router /storage/get_file_usage [get]
func (r *StorageRouter) GetFileUsage(c *fiber.Ctx) error {
id := c.Query("id")
if id == "" {
return errorpkg.NewMissingQueryParamError("id")
}
res, err := r.storageSvc.GetFileUsage(id, GetUserID(c))
if err != nil {
return err
}
return c.JSON(res)
}