123456789101112131415161718192021222324252627282930313233343536 |
- package http
- import (
- "net/http"
- "strings"
- )
- func NewLowerQueryParamsHandler(hdlr http.Handler) *LowerQueryParamsHandler {
- return &LowerQueryParamsHandler{hdlr}
- }
- type LowerQueryParamsHandler struct {
- Handler http.Handler
- }
- func (h *LowerQueryParamsHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
- err := req.ParseForm()
- if err == nil {
- lowerBoolQueryParams(req)
- }
- h.Handler.ServeHTTP(w, req)
- }
- func lowerBoolQueryParams(req *http.Request) {
- form := req.Form
- for key, vals := range form {
- for i, val := range vals {
- lowered := strings.ToLower(val)
- if lowered == "true" || lowered == "false" {
- req.Form[key][i] = lowered
- } else {
- req.Form[key][i] = val
- }
- }
- }
- }
|