summaryrefslogtreecommitdiffstats
path: root/model/command_response.go
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2018-04-27 10:53:38 +0100
committerGeorge Goldberg <george@gberg.me>2018-04-27 10:53:38 +0100
commit2386acb3ddabd8827e21b1862c338a8b13a25de6 (patch)
treed9c5800bf168db532124db3c213c2607402894c6 /model/command_response.go
parent7294644e9d74ca1512a730c597d61a97ccbcf10c (diff)
parent7abd6176e99d3f82711af51f8d75b3142ab73758 (diff)
downloadchat-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.go24
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
}