gofound/handler/index-handler.go

89 lines
1.8 KiB
Go

package handler
import (
"github.com/gin-gonic/gin"
"myschools.me/suguo/gofound/searcher/model"
"myschools.me/suguo/gofound/service"
)
// IndexQuery 查询
func IndexQuery(c *gin.Context) {
var request = &model.SearchRequest{}
if err := c.ShouldBindJSON(&request); err != nil {
ResponseErrorWithMsg(c, err.Error())
return
}
request.Database = c.Query("database")
//调用搜索
r, err := service.IndexQuery(request)
if err != nil {
ResponseErrorWithMsg(c, err.Error())
} else {
ResponseSuccessWithData(c, r)
}
}
// IndexAdd 添加索引
func IndexAdd(c *gin.Context) {
document := &model.IndexDoc{}
if err := c.ShouldBindJSON(&document); err != nil {
ResponseErrorWithMsg(c, err.Error())
return
}
dbName := c.Query("database")
if dbName == "" {
dbName = "default"
}
err := service.IndexAdd(&dbName, document)
if err != nil {
ResponseErrorWithMsg(c, err.Error())
return
}
ResponseSuccessWithData(c, nil)
}
// IndexBatchAdd 批量添加索引
func IndexBatchAdd(c *gin.Context) {
documents := make([]*model.IndexDoc, 0)
if err := c.BindJSON(&documents); err != nil {
ResponseErrorWithMsg(c, err.Error())
return
}
dbName := c.Query("database")
if dbName == "" {
dbName = "default"
}
err := service.IndexBatchAdd(dbName, documents)
if err != nil {
ResponseErrorWithMsg(c, err.Error())
return
}
ResponseSuccess(c)
}
// IndexRemove 删除索引
func IndexRemove(c *gin.Context) {
removeIndexModel := &model.RemoveIndexModel{}
if err := c.BindJSON(&removeIndexModel); err != nil {
ResponseErrorWithMsg(c, err.Error())
return
}
dbName := c.Query("database")
if dbName == "" {
ResponseErrorWithMsg(c, "database is empty")
return
}
if err := service.IndexRemove(dbName, removeIndexModel); err != nil {
ResponseErrorWithMsg(c, err.Error())
return
}
ResponseSuccess(c)
}