57 lines
1.9 KiB
Go
Raw Normal View History

2024-10-24 15:26:09 +08:00
package animal
import (
"catface/app/global/consts"
"catface/app/http/controller/web"
"catface/app/http/validator/common/location"
"catface/app/http/validator/core/data_transfer"
"catface/app/utils/response"
"github.com/gin-gonic/gin"
)
2024-10-24 20:14:24 +08:00
type Extra struct {
NickNames []string `form:"nick_names" json:"nick_names"`
Tags []string `form:"tags" json:"tags"`
}
type Health struct {
Sterilization uint8 `form:"sterilization" json:"sterilization"`
Vaccination uint8 `form:"vaccination" json:"vaccination"`
Deworming uint8 `form:"deworming" json:"deworming"`
}
2024-10-24 15:26:09 +08:00
type Create struct {
2024-10-30 17:21:09 +08:00
Name string `form:"name" json:"name" binding:"required"`
Breed uint8 `form:"breed" json:"breed" binding:"required"`
Gender uint8 `form:"gender" json:"gender" binding:"required"`
Status uint8 `form:"status" json:"status" binding:"required"`
Description string `form:"description" json:"description"`
Birthday string `form:"birthday" json:"birthday"`
Photos []string `form:"photos" json:"photos"`
2024-10-24 20:14:24 +08:00
Health Health `form:"health" json:"health"`
UserId int `form:"user_id" json:"user_id" binding:"required,numeric"`
Poi location.Poi `form:"poi" json:"poi"`
Extra Extra `form:"extra" json:"extra"`
FaceModelScore float64 `form:"face_model_score" json:"face_model_score"`
Mode bool `form:"mode" json:"mode"` // INFO 0 default1 缓存的效果。
2024-10-24 15:26:09 +08:00
}
func (c Create) CheckParams(context *gin.Context) {
if err := context.ShouldBind(&c); err != nil {
response.ValidatorError(context, err)
return
}
extraAddBindDataContext := data_transfer.DataAddContext(c, consts.ValidatorPrefix, context)
if extraAddBindDataContext == nil {
response.ErrorSystem(context, "Animal Create 表单验证器json化失败", "")
} else {
// 验证完成,调用控制器,并将验证器成员(字段)递给控制器,保持上下文数据一致性
(&web.Animals{}).Create(extraAddBindDataContext)
}
}