PLT-7684 Add support to outgoing webhooks and slash commands to set post type and props (#7531)

* Add support to outgoing webhooks and slash commands to set post type and props

* Fix nil access
Этот коммит содержится в:
Joram Wilander
2017-09-28 12:08:16 -04:00
коммит произвёл Corey Hulen
родитель 884cf494cb
Коммит f263d2b951
8 изменённых файлов: 68 добавлений и 3 удалений

Просмотреть файл

@@ -20,6 +20,8 @@ type CommandResponse struct {
Text string `json:"text"`
Username string `json:"username"`
IconURL string `json:"icon_url"`
Type string `json:"type"`
Props StringInterface `json:"props"`
GotoLocation string `json:"goto_location"`
Attachments []*SlackAttachment `json:"attachments"`
}

Просмотреть файл

@@ -45,6 +45,14 @@ type OutgoingWebhookPayload struct {
FileIds string `json:"file_ids"`
}
type OutgoingWebhookResponse struct {
Text *string `json:"text"`
Username string `json:"username"`
IconURL string `json:"icon_url"`
Props StringInterface `json:"props"`
Type string `json:"type"`
}
func (o *OutgoingWebhookPayload) ToJSON() string {
b, err := json.Marshal(o)
if err != nil {
@@ -112,6 +120,26 @@ func OutgoingWebhookListFromJson(data io.Reader) []*OutgoingWebhook {
}
}
func (o *OutgoingWebhookResponse) ToJson() string {
b, err := json.Marshal(o)
if err != nil {
return ""
} else {
return string(b)
}
}
func OutgoingWebhookResponseFromJson(data io.Reader) *OutgoingWebhookResponse {
decoder := json.NewDecoder(data)
var o OutgoingWebhookResponse
err := decoder.Decode(&o)
if err == nil {
return &o
} else {
return nil
}
}
func (o *OutgoingWebhook) IsValid() *AppError {
if len(o.Id) != 26 {

Просмотреть файл

@@ -176,3 +176,16 @@ func TestOutgoingWebhookTriggerWordStartsWith(t *testing.T) {
t.Fatal("Should return false")
}
}
func TestOutgoingWebhookResponseJson(t *testing.T) {
o := OutgoingWebhookResponse{}
o.Text = new(string)
*o.Text = "some text"
json := o.ToJson()
ro := OutgoingWebhookResponseFromJson(strings.NewReader(json))
if *o.Text != *ro.Text {
t.Fatal("Text does not match")
}
}