From a5ebb858621ade77f9ccc1ae93365c7c827c9fb2 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Sun, 4 Dec 2022 00:10:36 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E6=90=9C=E7=B4=A2=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E6=9F=A5=E8=AF=A2=20https://github.com/siyua?= =?UTF-8?q?n-note/siyuan/issues/6589?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/api/router.go | 1 + kernel/api/storage.go | 18 ++++++++++++++++++ kernel/model/storage.go | 20 ++++++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/kernel/api/router.go b/kernel/api/router.go index c380dc70f..82bed79e7 100644 --- a/kernel/api/router.go +++ b/kernel/api/router.go @@ -60,6 +60,7 @@ func ServeAPI(ginServer *gin.Engine) { ginServer.Handle("POST", "/api/storage/removeLocalStorageVal", model.CheckAuth, removeLocalStorageVal) ginServer.Handle("POST", "/api/storage/setCriterion", model.CheckAuth, setCriterion) ginServer.Handle("POST", "/api/storage/getCriteria", model.CheckAuth, getCriteria) + ginServer.Handle("POST", "/api/storage/removeCriterion", model.CheckAuth, removeCriterion) ginServer.Handle("POST", "/api/account/login", model.CheckAuth, login) ginServer.Handle("POST", "/api/account/checkActivationcode", model.CheckAuth, checkActivationcode) diff --git a/kernel/api/storage.go b/kernel/api/storage.go index a2384225a..52bc177f0 100644 --- a/kernel/api/storage.go +++ b/kernel/api/storage.go @@ -25,6 +25,24 @@ import ( "github.com/siyuan-note/siyuan/kernel/util" ) +func removeCriterion(c *gin.Context) { + ret := gulu.Ret.NewResult() + defer c.JSON(http.StatusOK, ret) + + arg, ok := util.JsonArg(c, ret) + if !ok { + return + } + + name := arg["name"].(string) + err := model.RemoveCriterion(name) + if nil != err { + ret.Code = -1 + ret.Msg = err.Error() + return + } +} + func setCriterion(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) diff --git a/kernel/model/storage.go b/kernel/model/storage.go index 911fd79ed..f9478b3a4 100644 --- a/kernel/model/storage.go +++ b/kernel/model/storage.go @@ -59,6 +59,26 @@ type CriterionTypes struct { var criteriaLock = sync.Mutex{} +func RemoveCriterion(name string) (err error) { + criteriaLock.Lock() + defer criteriaLock.Unlock() + + criteria, err := getCriteria() + if nil != err { + return + } + + for i, c := range criteria { + if c.Name == name { + criteria = append(criteria[:i], criteria[i+1:]...) + break + } + } + + err = setCriteria(criteria) + return +} + func SetCriterion(criterion *Criterion) (err error) { criteriaLock.Lock() defer criteriaLock.Unlock()