Files
web_hgtv_h5/app/api/web/route_url.go
T
谢宇宁andClaude Opus 5.5 3639d2184a Initial commit
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 14:47:17 +07:00

44 lines
893 B
Go

package web
import (
"net/http"
"strings"
"github.com/gin-gonic/gin"
)
func routeOrQuery(c *gin.Context, routeName, queryName string) string {
if c == nil {
return ""
}
if value := strings.TrimSpace(c.Param(routeName)); value != "" {
return value
}
return strings.TrimSpace(c.Query(queryName))
}
func hasQuery(c *gin.Context, names ...string) bool {
if c == nil || c.Request == nil || c.Request.URL == nil {
return false
}
values := c.Request.URL.Query()
for _, name := range names {
if _, ok := values[name]; ok {
return true
}
}
return false
}
func redirectCanonical(c *gin.Context, target string) bool {
target = strings.TrimSpace(target)
if c == nil || target == "" || c.Request == nil || c.Request.URL == nil {
return false
}
if c.Request.URL.RequestURI() == target {
return false
}
c.Redirect(http.StatusMovedPermanently, target)
return true
}