From 48a65784c7f157a191c9fbb8962f20203dfb5a83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E5=87=89?= <927625802@qq.com> Date: Sat, 13 Nov 2021 17:10:44 +0800 Subject: [PATCH] :bug: fix can't delete and get meta --- model/account.go | 11 ++++++----- model/meta.go | 7 +++---- server/account.go | 10 ++++++++-- server/meta.go | 10 ++++++++-- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/model/account.go b/model/account.go index fc7b68e2..6030b01f 100644 --- a/model/account.go +++ b/model/account.go @@ -1,7 +1,6 @@ package model import ( - "fmt" "github.com/Xhofe/alist/conf" "github.com/robfig/cron/v3" "time" @@ -54,11 +53,13 @@ func CreateAccount(account Account) error { return nil } -func DeleteAccount(name string) error { - account, ok := GetAccount(name) - if !ok { - return fmt.Errorf("no [%s] account", name) +func DeleteAccount(id uint) error { + var account Account + account.ID = id + if err := conf.DB.First(&account).Error; err != nil { + return err } + name := account.Name conf.Cron.Remove(cron.EntryID(account.CronId)) if err := conf.DB.Delete(&account).Error; err != nil { return err diff --git a/model/meta.go b/model/meta.go index 0c0e8ddb..d660a779 100644 --- a/model/meta.go +++ b/model/meta.go @@ -14,8 +14,7 @@ type Meta struct { func GetMetaByPath(path string) (*Meta, error) { var meta Meta - meta.Path = path - err := conf.DB.First(&meta).Error + err := conf.DB.Where("path = ?", path).First(&meta).Error if err != nil { return nil, err } @@ -30,8 +29,8 @@ func CreateMeta(meta Meta) error { return conf.DB.Create(&meta).Error } -func DeleteMeta(path string) error { - meta := Meta{Path: path} +func DeleteMeta(id uint) error { + meta := Meta{ID: id} log.Debugf("delete meta: %+v", meta) return conf.DB.Delete(&meta).Error } diff --git a/server/account.go b/server/account.go index 43d589cf..853d00cd 100644 --- a/server/account.go +++ b/server/account.go @@ -5,6 +5,7 @@ import ( "github.com/Xhofe/alist/drivers" "github.com/Xhofe/alist/model" "github.com/gin-gonic/gin" + "strconv" "time" ) @@ -73,8 +74,13 @@ func SaveAccount(c *gin.Context) { } func DeleteAccount(c *gin.Context) { - name := c.Query("name") - if err := model.DeleteAccount(name); err != nil { + idStr := c.Query("id") + id, err := strconv.Atoi(idStr) + if err != nil { + ErrorResp(c, err, 400) + return + } + if err := model.DeleteAccount(uint(id)); err != nil { ErrorResp(c, err, 500) return } diff --git a/server/meta.go b/server/meta.go index 6aba4789..0cb3f940 100644 --- a/server/meta.go +++ b/server/meta.go @@ -4,6 +4,7 @@ import ( "github.com/Xhofe/alist/model" "github.com/Xhofe/alist/utils" "github.com/gin-gonic/gin" + "strconv" ) func GetMetas(c *gin.Context) { @@ -44,9 +45,14 @@ func SaveMeta(c *gin.Context) { } func DeleteMeta(c *gin.Context) { - path := c.Query("path") + idStr := c.Query("id") + id, err := strconv.Atoi(idStr) + if err != nil { + ErrorResp(c, err, 400) + return + } //path = utils.ParsePath(path) - if err := model.DeleteMeta(path); err != nil { + if err := model.DeleteMeta(uint(id)); err != nil { ErrorResp(c, err, 500) return }