| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package requests
- import (
- "github.com/gin-gonic/gin"
- "github.com/thedevsaddam/govalidator"
- "github.com/runningwater/gohub/pkg/auth"
- )
- type UserUpdateProfileRequest struct {
- Name string `valid:"name" json:"name"`
- City string `valid:"city" json:"city"`
- Introduction string `valid:"introduction" json:"introduction"`
- }
- func UserUpdateProfile(data any, c *gin.Context) map[string][]string {
- // 查询用户名重复时,过滤当前用户ID
- uid := auth.CurrentUID(c)
- rules := govalidator.MapData{
- "name": []string{"required", "alpha_num", "between:3,20", "not_exists:users,name," + uid},
- "city": []string{"min_cn:2", "max_cn:20"},
- "introduction": []string{"min_cn:4", "max_cn:240"},
- }
- messages := govalidator.MapData{
- "name": []string{
- "required:用户名不能为空",
- "alpha_num:用户名格式错误",
- "between:3,20:用户名长度需在 3-20 之间",
- "not_exists:用户名已存在",
- },
- "city": []string{
- "min_cn:城市长度需至少 2 个字符",
- "max_cn:城市长度不能超过 20 个字符",
- },
- "introduction": []string{
- "min_cn:简介长度需至少 4 个字符",
- "max_cn:简介长度不能超过 240 个字符",
- },
- }
- return validate(data, rules, messages)
- }
|