summaryrefslogtreecommitdiffstats
path: root/utils/api.go
diff options
context:
space:
mode:
Diffstat (limited to 'utils/api.go')
-rw-r--r--utils/api.go28
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)
+}