refactor(smalltrip,problems): remove fallbacks from handlers

This commit is contained in:
Guz
2025-07-30 19:14:42 -03:00
parent 0f1d7a01d8
commit 793b6180e7

View File

@@ -37,45 +37,45 @@ func HandlerContentType(handlers map[string]Handler, fallback ...Handler) Handle
}
func HandlerXML(p Problem) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
return http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
w.Header().Set("Content-Type", ProblemMediaTypeXML)
b, err := xml.Marshal(p)
if err != nil {
HandlerJSON(p).ServeHTTP(w, r)
return
w.WriteHeader(http.StatusInternalServerError)
_, _ = w.Write(fmt.Appendf([]byte{}, "Failed to marshal problem XML: %s\n\nPlease report this error to the site's admin.", err.Error()))
}
w.WriteHeader(p.Status())
_, err = w.Write(b)
if err != nil {
HandlerJSON(p).ServeHTTP(w, r)
_, _ = w.Write(fmt.Appendf([]byte{}, "Failed to write problem XML: %s\n\nPlease report this error to the site's admin.", err.Error()))
}
})
}
func HandlerJSON(p Problem) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
return http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
w.Header().Set("Content-Type", ProblemMediaTypeJSON)
b, err := json.Marshal(p)
if err != nil {
HandlerText(p).ServeHTTP(w, r)
return
w.WriteHeader(http.StatusInternalServerError)
_, _ = w.Write(fmt.Appendf([]byte{}, "Failed to marshal problem JSON: %s\n\nPlease report this error to the site's admin.", err.Error()))
}
w.WriteHeader(p.Status())
_, err = w.Write(b)
if err != nil {
HandlerText(p).ServeHTTP(w, r)
_, _ = w.Write(fmt.Appendf([]byte{}, "Failed to write problem JSON: %s\n\nPlease report this error to the site's admin.", err.Error()))
}
})
}
func HandlerText(p Problem) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
return http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
w.Header().Set("Content-Type", "text/plain")
w.WriteHeader(p.Status())