add knowledge random list API

This commit is contained in:
Havoc412 2024-11-13 20:04:08 +08:00
parent 656bcf7239
commit 9ec55f46b4
7 changed files with 81 additions and 0 deletions

View File

@ -6,6 +6,7 @@ const (
ErrUser
ErrEncounter
ErrNlp
ErrKnowledge
)
const (

View File

@ -0,0 +1,13 @@
package errcode
const (
ErrKnowledgeRandomList = iota + ErrKnowledge
)
func KnowledgeMsgInit(m msg) {
m[ErrKnowledgeRandomList] = "随机获取科普知识点失败"
}
func KnowledgeMsgUserInit(m msg) {
m[ErrKnowledgeRandomList] = "随机获取科普知识点失败"
}

View File

@ -13,11 +13,13 @@ func init() {
UserMsgInit(ErrMsg)
EnocunterMsgInit(ErrMsg)
NlpMsgInit(ErrMsg)
KnowledgeMsgInit(ErrMsg)
// INGO
ErrMsgForUser = make(msg)
AnimalMsgUserInit(ErrMsgForUser)
EncounterMsgUserInit(ErrMsgForUser)
KnowledgeMsgUserInit(ErrMsgForUser)
}
func GeneralMsgInit(m msg) {

View File

@ -0,0 +1,26 @@
package web
import (
"catface/app/global/consts"
"catface/app/global/errcode"
"catface/app/model_es"
"catface/app/utils/response"
"github.com/gin-gonic/gin"
)
type Knowledge struct {
}
func (k *Knowledge) RandomList(context *gin.Context) {
num := context.GetFloat64(consts.ValidatorPrefix + "num")
knowledgeList, err := model_es.CreateKnowledgeESFactory().RandomDocuments(int(num))
if err != nil {
code := errcode.ErrKnowledgeRandomList
response.Fail(context, code, errcode.ErrMsg[code], errcode.ErrMsgForUser[code])
} else {
response.Success(context, consts.CurdStatusOkMsg, knowledgeList)
}
}

View File

@ -9,6 +9,7 @@ import (
"catface/app/http/validator/web/animal_like"
"catface/app/http/validator/web/encounter"
"catface/app/http/validator/web/encounter_like"
"catface/app/http/validator/web/knowledge"
"catface/app/http/validator/web/nlp"
"catface/app/http/validator/web/search"
"catface/app/http/validator/web/users"
@ -86,4 +87,8 @@ func WebRegisterValidator() {
// TAG Search
key = consts.ValidatorPrefix + "SearchAll"
containers.Set(key, search.SearchAll{})
// TAG Knowledge
key = consts.ValidatorPrefix + "KnowledgeRandomList"
containers.Set(key, knowledge.Random{})
}

View File

@ -0,0 +1,29 @@
package knowledge
import (
"catface/app/global/consts"
"catface/app/http/controller/web"
"catface/app/http/validator/core/data_transfer"
"catface/app/utils/response"
"github.com/gin-gonic/gin"
)
type Random struct {
Num int `form:"num" json:"num"`
}
func (r Random) CheckParams(context *gin.Context) {
if err := context.ShouldBind(&r); err != nil {
response.ValidatorError(context, err)
return
}
extraAddBindDataContext := data_transfer.DataAddContext(r, consts.ValidatorPrefix, context)
if extraAddBindDataContext == nil {
response.ErrorSystem(context, "Random Knowledge 表单验证器json化失败", "")
} else {
// 验证完成,调用控制器,并将验证器成员(字段)递给控制器,保持上下文数据一致性
(&web.Knowledge{}).RandomList(extraAddBindDataContext)
}
}

View File

@ -154,6 +154,11 @@ func InitWebRouter() *gin.Engine {
{
search.GET("", validatorFactory.Create(consts.ValidatorPrefix+"SearchAll"))
}
knowledge := backend.Group("knowledge")
{
knowledge.GET("random", validatorFactory.Create(consts.ValidatorPrefix+"KnowledgeRandomList"))
}
// }
}