102 lines
3.7 KiB
Go
102 lines
3.7 KiB
Go
|
package v1
|
||
|
|
||
|
import (
|
||
|
"strings"
|
||
|
|
||
|
"github.com/IceWhaleTech/CasaOS-Common/utils/logger"
|
||
|
"github.com/IceWhaleTech/CasaOS/drivers/dropbox"
|
||
|
"github.com/IceWhaleTech/CasaOS/drivers/google_drive"
|
||
|
"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"
|
||
|
"github.com/gin-gonic/gin"
|
||
|
"go.uber.org/zap"
|
||
|
)
|
||
|
|
||
|
func ListStorages(c *gin.Context) {
|
||
|
// var req model.PageReq
|
||
|
// if err := c.ShouldBind(&req); err != nil {
|
||
|
// c.JSON(common_err.SUCCESS, model.Result{Success: common_err.CLIENT_ERROR, Message: common_err.GetMsg(common_err.CLIENT_ERROR), Data: err.Error()})
|
||
|
// return
|
||
|
// }
|
||
|
// req.Validate()
|
||
|
|
||
|
//logger.Info("ListStorages", zap.Any("req", req))
|
||
|
//storages, total, err := service.MyService.Storage().GetStorages(req.Page, req.PerPage)
|
||
|
// if err != nil {
|
||
|
// c.JSON(common_err.SUCCESS, model.Result{Success: common_err.SERVICE_ERROR, Message: common_err.GetMsg(common_err.SERVICE_ERROR), Data: err.Error()})
|
||
|
// return
|
||
|
// }
|
||
|
// c.JSON(common_err.SUCCESS, model.Result{Success: common_err.SUCCESS, Message: common_err.GetMsg(common_err.SUCCESS), Data: model.PageResp{
|
||
|
// Content: storages,
|
||
|
// Total: total,
|
||
|
// }})
|
||
|
r, err := service.MyService.Storage().GetStorages()
|
||
|
|
||
|
if err != nil {
|
||
|
c.JSON(common_err.SUCCESS, model.Result{Success: common_err.SERVICE_ERROR, Message: common_err.GetMsg(common_err.SERVICE_ERROR), Data: err.Error()})
|
||
|
return
|
||
|
}
|
||
|
|
||
|
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
|
||
|
}
|
||
|
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,
|
||
|
})
|
||
|
}
|
||
|
|
||
|
c.JSON(common_err.SUCCESS, model.Result{Success: common_err.SUCCESS, Message: common_err.GetMsg(common_err.SUCCESS), Data: list})
|
||
|
}
|
||
|
|
||
|
func UmountStorage(c *gin.Context) {
|
||
|
json := make(map[string]string)
|
||
|
c.ShouldBind(&json)
|
||
|
mountPoint := json["mount_point"]
|
||
|
if mountPoint == "" {
|
||
|
c.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"})
|
||
|
return
|
||
|
}
|
||
|
err := service.MyService.Storage().UnmountStorage(mountPoint)
|
||
|
if err != nil {
|
||
|
c.JSON(common_err.SERVICE_ERROR, model.Result{Success: common_err.SERVICE_ERROR, Message: common_err.GetMsg(common_err.SERVICE_ERROR), Data: err.Error()})
|
||
|
return
|
||
|
}
|
||
|
service.MyService.Storage().DeleteConfigByName(strings.ReplaceAll(mountPoint, "/mnt/", ""))
|
||
|
c.JSON(common_err.SUCCESS, model.Result{Success: common_err.SUCCESS, Message: common_err.GetMsg(common_err.SUCCESS), Data: "success"})
|
||
|
}
|
||
|
|
||
|
func GetStorage(c *gin.Context) {
|
||
|
|
||
|
// idStr := c.Query("id")
|
||
|
// id, err := strconv.Atoi(idStr)
|
||
|
// if err != nil {
|
||
|
// c.JSON(common_err.SUCCESS, model.Result{Success: common_err.CLIENT_ERROR, Message: common_err.GetMsg(common_err.CLIENT_ERROR), Data: err.Error()})
|
||
|
// return
|
||
|
// }
|
||
|
// storage, err := service.MyService.Storage().GetStorageById(uint(id))
|
||
|
// if err != nil {
|
||
|
// c.JSON(common_err.SUCCESS, model.Result{Success: common_err.SERVICE_ERROR, Message: common_err.GetMsg(common_err.SERVICE_ERROR), Data: err.Error()})
|
||
|
// return
|
||
|
// }
|
||
|
// c.JSON(common_err.SUCCESS, model.Result{Success: common_err.SUCCESS, Message: common_err.GetMsg(common_err.SUCCESS), Data: storage})
|
||
|
}
|