89 lines
2.1 KiB
Go
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)
|
|
}
|