Files
015/backend/internal/controllers/stat.go

51 lines
1.1 KiB
Go

package controllers
import (
"backend/internal/models"
"backend/internal/utils"
"strings"
"github.com/labstack/echo/v4"
"github.com/spf13/cast"
)
func GetStat(c echo.Context) error {
keys, err := models.GetRedisFileKeysAll()
if err != nil {
return utils.HTTPErrorHandler(c, err)
}
var filesSize int64
for _, key := range keys {
list := strings.Split(key, "_")
if len(list) > 1 {
filesSize += cast.ToInt64(list[1])
}
}
queueInspector := utils.GetQueueInspector()
queues, err := queueInspector.History("default", 30)
if err != nil {
return utils.HTTPErrorHandler(c, err)
}
maxStorageSize, err := utils.GetFileSize(utils.GetEnv("MAX_LOCALSTORAGE_SIZE"))
if err != nil {
return utils.HTTPErrorHandler(c, err)
}
return utils.HTTPSuccessHandler(c, map[string]any{
"version": "0.1.0",
"total": map[string]any{
"file_size": filesSize,
"file_num": len(keys),
},
"limit": map[string]any{
"file_size": maxStorageSize,
},
"admin": map[string]any{
"user_name": utils.GetEnv("ADMIN_NAME"),
"email": utils.GetEnv("ADMIN_EMAIL"),
},
"queue": queues,
})
}