From f84edae99d35145542298c514221b498dca7732d Mon Sep 17 00:00:00 2001 From: Donald Clark Jackson Date: Mon, 27 Nov 2017 14:02:57 -0800 Subject: [PATCH] added support for incoming-payload-content-type --- hook/hook.go | 1 + webhook.go | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/hook/hook.go b/hook/hook.go index 6fcda3e..4b4b989 100644 --- a/hook/hook.go +++ b/hook/hook.go @@ -383,6 +383,7 @@ type Hook struct { JSONStringParameters []Argument `json:"parse-parameters-as-json,omitempty"` TriggerRule *Rules `json:"trigger-rule,omitempty"` TriggerRuleMismatchHttpResponseCode int `json:"trigger-rule-mismatch-http-response-code,omitempty"` + IncomingPayloadContentType string `json:"incoming-payload-content-type,omitempty"` } // ParseJSONParameters decodes specified arguments to JSON objects and replaces the diff --git a/webhook.go b/webhook.go index d14ff6c..9ac5c27 100644 --- a/webhook.go +++ b/webhook.go @@ -228,7 +228,11 @@ func hookHandler(w http.ResponseWriter, r *http.Request) { // parse body var payload map[string]interface{} + // set contentType to IncomingPayloadContentType or header value contentType := r.Header.Get("Content-Type") + if len(matchedHook.IncomingPayloadContentType) != 0 { + contentType = matchedHook.IncomingPayloadContentType + } if strings.Contains(contentType, "json") { decoder := json.NewDecoder(strings.NewReader(string(body)))