1
0
mirror of https://github.com/IceWhaleTech/CasaOS.git synced 2025-07-06 23:37:26 +02:00
Files
CasaOS/route/v1/cloud.go

102 lines
3.9 KiB
Go
Raw Normal View History

2023-03-17 15:37:28 +08:00
package v1
import (
"strings"
"github.com/IceWhaleTech/CasaOS-Common/utils/logger"
"github.com/IceWhaleTech/CasaOS/drivers/dropbox"
"github.com/IceWhaleTech/CasaOS/drivers/google_drive"
2023-08-22 05:01:40 +01:00
"github.com/IceWhaleTech/CasaOS/drivers/onedrive"
2023-03-17 15:37:28 +08:00
"github.com/IceWhaleTech/CasaOS/model"
"github.com/IceWhaleTech/CasaOS/pkg/utils/common_err"
"github.com/IceWhaleTech/CasaOS/pkg/utils/httper"
"github.com/IceWhaleTech/CasaOS/service"
2024-06-04 14:14:55 +08:00
"github.com/labstack/echo/v4"
2023-03-17 15:37:28 +08:00
"go.uber.org/zap"
)
2024-06-04 14:14:55 +08:00
func ListStorages(ctx echo.Context) error {
2023-03-17 15:37:28 +08:00
// var req model.PageReq
2024-06-04 14:14:55 +08:00
// if err := ctx.Bind(&req); err != nil {
// return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.CLIENT_ERROR, Message: common_err.GetMsg(common_err.CLIENT_ERROR), Data: err.Error()})
2023-03-17 15:37:28 +08:00
// return
// }
// req.Validate()
2024-06-04 14:14:55 +08:00
// logger.Info("ListStorages", zap.Any("req", req))
// storages, total, err := service.MyService.Storage().GetStorages(req.Page, req.PerPage)
2023-03-17 15:37:28 +08:00
// if err != nil {
2024-06-04 14:14:55 +08:00
// return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.SERVICE_ERROR, Message: common_err.GetMsg(common_err.SERVICE_ERROR), Data: err.Error()})
2023-03-17 15:37:28 +08:00
// return
// }
2024-06-04 14:14:55 +08:00
// return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.SUCCESS, Message: common_err.GetMsg(common_err.SUCCESS), Data: model.PageResp{
2023-03-17 15:37:28 +08:00
// Content: storages,
// Total: total,
// }})
r, err := service.MyService.Storage().GetStorages()
if err != nil {
2024-06-04 14:14:55 +08:00
return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.SERVICE_ERROR, Message: common_err.GetMsg(common_err.SERVICE_ERROR), Data: err.Error()})
2023-03-17 15:37:28 +08:00
}
for i := 0; i < len(r.MountPoints); i++ {
dataMap, err := service.MyService.Storage().GetConfigByName(r.MountPoints[i].Fs)
if err != nil {
logger.Error("GetConfigByName", zap.Any("err", err))
continue
}
if dataMap["type"] == "drive" {
r.MountPoints[i].Icon = google_drive.ICONURL
}
if dataMap["type"] == "dropbox" {
r.MountPoints[i].Icon = dropbox.ICONURL
}
2023-08-22 05:01:40 +01:00
if dataMap["type"] == "onedrive" {
r.MountPoints[i].Icon = onedrive.ICONURL
}
2023-03-17 15:37:28 +08:00
r.MountPoints[i].Name = dataMap["username"]
}
list := []httper.MountPoint{}
for _, v := range r.MountPoints {
list = append(list, httper.MountPoint{
Fs: v.Fs,
Icon: v.Icon,
MountPoint: v.MountPoint,
Name: v.Name,
})
}
2024-06-04 14:14:55 +08:00
return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.SUCCESS, Message: common_err.GetMsg(common_err.SUCCESS), Data: list})
2023-03-17 15:37:28 +08:00
}
2024-06-04 14:14:55 +08:00
func UmountStorage(ctx echo.Context) error {
2023-03-17 15:37:28 +08:00
json := make(map[string]string)
2024-06-04 14:14:55 +08:00
ctx.Bind(&json)
2023-03-17 15:37:28 +08:00
mountPoint := json["mount_point"]
if mountPoint == "" {
2024-06-04 14:14:55 +08:00
return ctx.JSON(common_err.CLIENT_ERROR, model.Result{Success: common_err.CLIENT_ERROR, Message: common_err.GetMsg(common_err.CLIENT_ERROR), Data: "mount_point is empty"})
2023-03-17 15:37:28 +08:00
}
err := service.MyService.Storage().UnmountStorage(mountPoint)
if err != nil {
2024-06-04 14:14:55 +08:00
return ctx.JSON(common_err.SERVICE_ERROR, model.Result{Success: common_err.SERVICE_ERROR, Message: common_err.GetMsg(common_err.SERVICE_ERROR), Data: err.Error()})
2023-03-17 15:37:28 +08:00
}
service.MyService.Storage().DeleteConfigByName(strings.ReplaceAll(mountPoint, "/mnt/", ""))
2024-06-04 14:14:55 +08:00
return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.SUCCESS, Message: common_err.GetMsg(common_err.SUCCESS), Data: "success"})
2023-03-17 15:37:28 +08:00
}
2024-06-04 14:14:55 +08:00
func GetStorage(ctx echo.Context) error {
// idStr := ctx.QueryParam("id")
2023-03-17 15:37:28 +08:00
// id, err := strconv.Atoi(idStr)
// if err != nil {
2024-06-04 14:14:55 +08:00
// return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.CLIENT_ERROR, Message: common_err.GetMsg(common_err.CLIENT_ERROR), Data: err.Error()})
2023-03-17 15:37:28 +08:00
// return
// }
// storage, err := service.MyService.Storage().GetStorageById(uint(id))
// if err != nil {
2024-06-04 14:14:55 +08:00
// return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.SERVICE_ERROR, Message: common_err.GetMsg(common_err.SERVICE_ERROR), Data: err.Error()})
2023-03-17 15:37:28 +08:00
// return
// }
2024-06-04 14:14:55 +08:00
// return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.SUCCESS, Message: common_err.GetMsg(common_err.SUCCESS), Data: storage})
return nil
2023-03-17 15:37:28 +08:00
}