From ddacfa58ba25002a7c3c35a1fe89898bb6e78c0a Mon Sep 17 00:00:00 2001 From: Yusuke Nemoto Date: Sat, 10 Dec 2016 13:35:16 +0900 Subject: PLT-1598 Slash command works in RHS (#4367) * PLT-1598 Slash command works in RHS * fix UserProfile in the reply for Slash Command * fix some problem about the system messages in RHS * system message in RHS isn't displayed as comment for root message * remove status indicator for system message in RHS * system message in RHS is colored to grey * system messages don't count as commented post * fix bug about cleaning draft in RHS * remove unnecessary function * implement new model for executing command --- model/client.go | 9 +++------ model/command_args.go | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 model/command_args.go (limited to 'model') 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 + } +} -- cgit v1.2.3-1-g7c22