From 04dfa2a9eb50d60b2d4c2533f465799966b363a6 Mon Sep 17 00:00:00 2001 From: thoemy Date: Thu, 12 May 2016 13:44:44 +0200 Subject: Improve incoming webhook slack compatibility (#2972) (#2973) By checking for form urlencoded content instead of JSON, requests without or with a wrong Content-Type header and a JSON body are correctly parsed. --- api/webhook.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'api/webhook.go') diff --git a/api/webhook.go b/api/webhook.go index ea628e39c..a4367026f 100644 --- a/api/webhook.go +++ b/api/webhook.go @@ -358,10 +358,10 @@ func incomingWebhook(c *Context, w http.ResponseWriter, r *http.Request) { var parsedRequest *model.IncomingWebhookRequest contentType := r.Header.Get("Content-Type") - if strings.Split(contentType, "; ")[0] == "application/json" { - parsedRequest = model.IncomingWebhookRequestFromJson(r.Body) - } else { + if strings.Split(contentType, "; ")[0] == "application/x-www-form-urlencoded" { parsedRequest = model.IncomingWebhookRequestFromJson(strings.NewReader(r.FormValue("payload"))) + } else { + parsedRequest = model.IncomingWebhookRequestFromJson(r.Body) } if parsedRequest == nil { -- cgit v1.2.3-1-g7c22