added hook flag incoming-payload-content-type

This commit is contained in:
Donald Clark Jackson 2017-11-22 10:38:50 -08:00
parent 514388e39e
commit b7a992704f
2 changed files with 3 additions and 2 deletions

View File

@ -391,6 +391,7 @@ type Hook struct {
JSONStringParameters []Argument `json:"parse-parameters-as-json,omitempty"` JSONStringParameters []Argument `json:"parse-parameters-as-json,omitempty"`
TriggerRule *Rules `json:"trigger-rule,omitempty"` TriggerRule *Rules `json:"trigger-rule,omitempty"`
TriggerRuleMismatchHttpResponseCode int `json:"trigger-rule-mismatch-http-response-code,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 // ParseJSONParameters decodes specified arguments to JSON objects and replaces the

View File

@ -231,7 +231,7 @@ func hookHandler(w http.ResponseWriter, r *http.Request) {
contentType := r.Header.Get("Content-Type") contentType := r.Header.Get("Content-Type")
if strings.Contains(contentType, "json") { if strings.Contains(matchedHook.IncomingPayloadContentType, "json") || strings.Contains(contentType, "json") {
decoder := json.NewDecoder(strings.NewReader(string(body))) decoder := json.NewDecoder(strings.NewReader(string(body)))
decoder.UseNumber() decoder.UseNumber()
@ -240,7 +240,7 @@ func hookHandler(w http.ResponseWriter, r *http.Request) {
if err != nil { if err != nil {
log.Printf("[%s] error parsing JSON payload %+v\n", rid, err) log.Printf("[%s] error parsing JSON payload %+v\n", rid, err)
} }
} else if strings.Contains(contentType, "form") { } else if strings.Contains(matchedHook.IncomingPayloadContentType, "form") || strings.Contains(contentType, "form") {
fd, err := url.ParseQuery(string(body)) fd, err := url.ParseQuery(string(body))
if err != nil { if err != nil {
log.Printf("[%s] error parsing form payload %+v\n", rid, err) log.Printf("[%s] error parsing form payload %+v\n", rid, err)