UPDATE: some logic change
All checks were successful
Build and Release / release (push) Successful in 1m2s
All checks were successful
Build and Release / release (push) Successful in 1m2s
This commit is contained in:
@@ -5,7 +5,7 @@ import "time"
|
|||||||
type UpdateProfileDto struct {
|
type UpdateProfileDto struct {
|
||||||
DisplayName string `json:"display_name" validate:"omitempty,min=2,max=50"`
|
DisplayName string `json:"display_name" validate:"omitempty,min=2,max=50"`
|
||||||
FullName string `json:"full_name" validate:"omitempty,min=2,max=100"`
|
FullName string `json:"full_name" validate:"omitempty,min=2,max=100"`
|
||||||
AvatarUrl string `json:"avatar_url" validate:"omitempty,url"`
|
AvatarUrl string `json:"avatar_url" validate:"omitempty,url,image_url"`
|
||||||
Bio string `json:"bio" validate:"omitempty,max=255"`
|
Bio string `json:"bio" validate:"omitempty,max=255"`
|
||||||
Location string `json:"location" validate:"omitempty,max=100"`
|
Location string `json:"location" validate:"omitempty,max=100"`
|
||||||
Website string `json:"website" validate:"omitempty,url"`
|
Website string `json:"website" validate:"omitempty,url"`
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package validator
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"net/url"
|
||||||
|
"path"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
@@ -22,6 +24,31 @@ func init() {
|
|||||||
}
|
}
|
||||||
return name
|
return name
|
||||||
})
|
})
|
||||||
|
|
||||||
|
validate.RegisterValidation("image_url", func(fl validator.FieldLevel) bool {
|
||||||
|
val := fl.Field().String()
|
||||||
|
if val == "" {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return isImageURL(val)
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func isImageURL(u string) bool {
|
||||||
|
parsed, err := url.Parse(u)
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
ext := strings.ToLower(path.Ext(parsed.Path))
|
||||||
|
|
||||||
|
switch ext {
|
||||||
|
case ".jpg", ".jpeg", ".png", ".gif", ".webp":
|
||||||
|
return true
|
||||||
|
default:
|
||||||
|
return false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type ErrorResponse struct {
|
type ErrorResponse struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user