topic_request.go 1.0 KB

12345678910111213141516171819202122232425262728
  1. package requests
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/thedevsaddam/govalidator"
  5. )
  6. type TopicRequest struct {
  7. Title string `json:"title,omitempty" valid:"title"`
  8. Body string `json:"body,omitempty" valid:"body"`
  9. CategoryID string `json:"category_id,omitempty" valid:"category_id"`
  10. }
  11. func TopicSave(data any, c *gin.Context) map[string][]string {
  12. rules := govalidator.MapData{
  13. "title": []string{"required", "min_cn:3", "max_cn:40"},
  14. "body": []string{"required", "min_cn:10", "max_cn:50000"},
  15. "category_id": []string{"required", "exists:categories,id"},
  16. }
  17. messages := govalidator.MapData{
  18. "title": []string{"required:标题为必填项", "min_cn:标题长度需至少 3 个字符", "max_cn:标题长度不能超过 40 个字符"},
  19. "body": []string{"required:内容为必填项", "min_cn:内容长度需至少 10 个字符", "max_cn:内容长度不能超过 50000 个字符"},
  20. "category_id": []string{"required:分类为必填项", "exists:分类不存在"},
  21. }
  22. return validate(data, rules, messages)
  23. }