summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorJesús Espino <jespinog@gmail.com>2018-06-26 23:04:06 +0200
committerJoram Wilander <jwawilander@gmail.com>2018-06-26 17:04:06 -0400
commit85aa3d664c32af0532113f554002a5d3192faf29 (patch)
tree226a4d31b1ce09b22ad8a9d39c06feb629a576a4 /web
parent2d7cd02abcd62ffd60fe3c6e16e5189169de349e (diff)
downloadchat-85aa3d664c32af0532113f554002a5d3192faf29.tar.gz
chat-85aa3d664c32af0532113f554002a5d3192faf29.tar.bz2
chat-85aa3d664c32af0532113f554002a5d3192faf29.zip
MM-11034: Reply properly to incomming webhooks on errors (#9010)
Diffstat (limited to 'web')
-rw-r--r--web/handlers.go2
-rw-r--r--web/web.go8
2 files changed, 8 insertions, 2 deletions
diff --git a/web/handlers.go b/web/handlers.go
index c12466fee..c089f460b 100644
--- a/web/handlers.go
+++ b/web/handlers.go
@@ -157,7 +157,7 @@ func (h Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
c.Err.IsOAuth = false
}
- if IsApiCall(c.App, r) || len(r.Header.Get("X-Mobile-App")) > 0 {
+ if IsApiCall(c.App, r) || IsWebhookCall(c.App, r) || len(r.Header.Get("X-Mobile-App")) > 0 {
w.WriteHeader(c.Err.StatusCode)
w.Write([]byte(c.Err.ToJson()))
} else {
diff --git a/web/web.go b/web/web.go
index 479f439fb..f41854cbd 100644
--- a/web/web.go
+++ b/web/web.go
@@ -73,7 +73,13 @@ func Handle404(a *app.App, w http.ResponseWriter, r *http.Request) {
func IsApiCall(a *app.App, r *http.Request) bool {
subpath, _ := utils.GetSubpathFromConfig(a.Config())
- return strings.Index(r.URL.Path, path.Join(subpath, "api")+"/") == 0
+ return strings.HasPrefix(r.URL.Path, path.Join(subpath, "api")+"/")
+}
+
+func IsWebhookCall(a *app.App, r *http.Request) bool {
+ subpath, _ := utils.GetSubpathFromConfig(a.Config())
+
+ return strings.HasPrefix(r.URL.Path, path.Join(subpath, "hooks")+"/")
}
func ReturnStatusOK(w http.ResponseWriter) {