package router import ( "html/template" "net/http" "strings" "github.com/dcarrillo/whatismyip/internal/httputils" "github.com/gin-gonic/gin" ) func getHeadersAsSortedString(ctx *gin.Context) { h := httputils.GetHeadersWithoutTrustedHeaders(ctx) h.Set("Host", ctx.Request.Host) ctx.String(http.StatusOK, httputils.HeadersToSortedString(h)) } func getHeaderAsString(ctx *gin.Context) { headers := httputils.GetHeadersWithoutTrustedHeaders(ctx) h := ctx.Params.ByName("header") if v := headers.Get(ctx.Params.ByName("header")); v != "" { ctx.String(http.StatusOK, template.HTMLEscapeString(v)) } else if strings.ToLower(h) == "host" { ctx.String(http.StatusOK, template.HTMLEscapeString(ctx.Request.Host)) } else { ctx.String(http.StatusNotFound, http.StatusText(http.StatusNotFound)) } }