diff options
Diffstat (limited to 'utils/api.go')
-rw-r--r-- | utils/api.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/utils/api.go b/utils/api.go index 228808f3c..55f84ef92 100644 --- a/utils/api.go +++ b/utils/api.go @@ -5,7 +5,10 @@ package utils import ( "net/http" + "net/url" "strings" + + "github.com/mattermost/platform/model" ) type OriginCheckerProc func(*http.Request) bool @@ -22,3 +25,28 @@ func GetOriginChecker(r *http.Request) OriginCheckerProc { return nil } + +func RenderWebError(err *model.AppError, w http.ResponseWriter, r *http.Request) { + T, _ := GetTranslationsAndLocale(w, r) + + title := T("api.templates.error.title", map[string]interface{}{"SiteName": ClientCfg["SiteName"]}) + message := err.Message + details := err.DetailedError + link := "/" + linkMessage := T("api.templates.error.link") + + status := http.StatusTemporaryRedirect + if err.StatusCode != http.StatusInternalServerError { + status = err.StatusCode + } + + http.Redirect( + w, + r, + "/error?title="+url.QueryEscape(title)+ + "&message="+url.QueryEscape(message)+ + "&details="+url.QueryEscape(details)+ + "&link="+url.QueryEscape(link)+ + "&linkmessage="+url.QueryEscape(linkMessage), + status) +} |