summaryrefslogtreecommitdiffstats
path: root/model/command_response.go
diff options
context:
space:
mode:
Diffstat (limited to 'model/command_response.go')
-rw-r--r--model/command_response.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/model/command_response.go b/model/command_response.go
index 27d39e173..0b80b297b 100644
--- a/model/command_response.go
+++ b/model/command_response.go
@@ -6,6 +6,7 @@ package model
import (
"encoding/json"
"io"
+ "io/ioutil"
)
const (
@@ -31,6 +32,22 @@ func (o *CommandResponse) ToJson() string {
}
}
+func CommandResponseFromHTTPBody(contentType string, body io.Reader) *CommandResponse {
+ if contentType == "application/json" {
+ return CommandResponseFromJson(body)
+ }
+ if b, err := ioutil.ReadAll(body); err == nil {
+ return CommandResponseFromPlainText(string(b))
+ }
+ return nil
+}
+
+func CommandResponseFromPlainText(text string) *CommandResponse {
+ return &CommandResponse{
+ Text: text,
+ }
+}
+
func CommandResponseFromJson(data io.Reader) *CommandResponse {
decoder := json.NewDecoder(data)
var o CommandResponse