Browse Source

:art: 搜索支持命名查询 https://github.com/siyuan-note/siyuan/issues/6589

Liang Ding 2 years ago
parent
commit
a5ebb85862
3 changed files with 39 additions and 0 deletions
  1. 1 0
      kernel/api/router.go
  2. 18 0
      kernel/api/storage.go
  3. 20 0
      kernel/model/storage.go

+ 1 - 0
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)

+ 18 - 0
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)

+ 20 - 0
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()