hyapp-server/server/admin/internal/modules/shared/user_identity_query.go
2026-06-29 14:26:06 +08:00

40 lines
971 B
Go

package shared
import (
"strings"
"github.com/gin-gonic/gin"
)
func UserIdentityFilterFromQuery(c *gin.Context, prefix string) UserIdentityFilter {
prefix = strings.TrimSpace(prefix)
return UserIdentityFilter{
UserID: firstQuery(c, queryNames(prefix, "user_id", "userId")...),
DisplayUserID: firstQuery(c, queryNames(prefix, "display_user_id", "displayUserId")...),
Username: firstQuery(c, queryNames(prefix, "username", "username")...),
}
}
func firstQuery(c *gin.Context, names ...string) string {
for _, name := range names {
if value := strings.TrimSpace(c.Query(name)); value != "" {
return value
}
}
return ""
}
func queryNames(prefix string, snake string, camel string) []string {
if prefix == "" {
return []string{snake, camel}
}
return []string{prefix + "_" + snake, prefix + upperFirst(camel)}
}
func upperFirst(value string) string {
if value == "" {
return ""
}
return strings.ToUpper(value[:1]) + value[1:]
}