diff options
Diffstat (limited to 'model')
-rw-r--r-- | model/client.go | 9 | ||||
-rw-r--r-- | model/command_args.go | 36 |
2 files changed, 39 insertions, 6 deletions
diff --git a/model/client.go b/model/client.go index 510ba461f..951b3388a 100644 --- a/model/client.go +++ b/model/client.go @@ -826,12 +826,9 @@ func (c *Client) EmailToLDAP(m map[string]string) (*Result, *AppError) { } } -func (c *Client) Command(channelId string, command string, suggest bool) (*Result, *AppError) { - m := make(map[string]string) - m["command"] = command - m["channelId"] = channelId - m["suggest"] = strconv.FormatBool(suggest) - if r, err := c.DoApiPost(c.GetTeamRoute()+"/commands/execute", MapToJson(m)); err != nil { +func (c *Client) Command(channelId string, command string) (*Result, *AppError) { + args := &CommandArgs{ChannelId: channelId, Command: command} + if r, err := c.DoApiPost(c.GetTeamRoute()+"/commands/execute", args.ToJson()); err != nil { return nil, err } else { defer closeBody(r) diff --git a/model/command_args.go b/model/command_args.go new file mode 100644 index 000000000..4da5dc760 --- /dev/null +++ b/model/command_args.go @@ -0,0 +1,36 @@ +// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package model + +import ( + "encoding/json" + "io" +) + +type CommandArgs struct { + ChannelId string `json:"channel_id"` + RootId string `json:"root_id"` + ParentId string `json:"parent_id"` + Command string `json:"command"` +} + +func (o *CommandArgs) ToJson() string { + b, err := json.Marshal(o) + if err != nil { + return "" + } else { + return string(b) + } +} + +func CommandArgsFromJson(data io.Reader) *CommandArgs { + decoder := json.NewDecoder(data) + var o CommandArgs + err := decoder.Decode(&o) + if err == nil { + return &o + } else { + return nil + } +} |