diff options
author | George Goldberg <george@gberg.me> | 2018-04-27 10:53:38 +0100 |
---|---|---|
committer | George Goldberg <george@gberg.me> | 2018-04-27 10:53:38 +0100 |
commit | 2386acb3ddabd8827e21b1862c338a8b13a25de6 (patch) | |
tree | d9c5800bf168db532124db3c213c2607402894c6 /model/command_response.go | |
parent | 7294644e9d74ca1512a730c597d61a97ccbcf10c (diff) | |
parent | 7abd6176e99d3f82711af51f8d75b3142ab73758 (diff) | |
download | chat-2386acb3ddabd8827e21b1862c338a8b13a25de6.tar.gz chat-2386acb3ddabd8827e21b1862c338a8b13a25de6.tar.bz2 chat-2386acb3ddabd8827e21b1862c338a8b13a25de6.zip |
Merge branch 'master' into advanced-permissions-phase-2
Diffstat (limited to 'model/command_response.go')
-rw-r--r-- | model/command_response.go | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/model/command_response.go b/model/command_response.go index cac7e8452..1ed5286de 100644 --- a/model/command_response.go +++ b/model/command_response.go @@ -8,6 +8,8 @@ import ( "io" "io/ioutil" "strings" + + "github.com/mattermost/mattermost-server/utils/jsonutils" ) const ( @@ -31,14 +33,14 @@ func (o *CommandResponse) ToJson() string { return string(b) } -func CommandResponseFromHTTPBody(contentType string, body io.Reader) *CommandResponse { +func CommandResponseFromHTTPBody(contentType string, body io.Reader) (*CommandResponse, error) { if strings.TrimSpace(strings.Split(contentType, ";")[0]) == "application/json" { return CommandResponseFromJson(body) } if b, err := ioutil.ReadAll(body); err == nil { - return CommandResponseFromPlainText(string(b)) + return CommandResponseFromPlainText(string(b)), nil } - return nil + return nil, nil } func CommandResponseFromPlainText(text string) *CommandResponse { @@ -47,15 +49,19 @@ func CommandResponseFromPlainText(text string) *CommandResponse { } } -func CommandResponseFromJson(data io.Reader) *CommandResponse { - decoder := json.NewDecoder(data) - var o CommandResponse +func CommandResponseFromJson(data io.Reader) (*CommandResponse, error) { + b, err := ioutil.ReadAll(data) + if err != nil { + return nil, err + } - if err := decoder.Decode(&o); err != nil { - return nil + var o CommandResponse + err = json.Unmarshal(b, &o) + if err != nil { + return nil, jsonutils.HumanizeJsonError(err, b) } o.Attachments = StringifySlackFieldValue(o.Attachments) - return &o + return &o, nil } |