diff options
Diffstat (limited to 'vendor/github.com/nlopes/slack/webhooks.go')
-rw-r--r-- | vendor/github.com/nlopes/slack/webhooks.go | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/vendor/github.com/nlopes/slack/webhooks.go b/vendor/github.com/nlopes/slack/webhooks.go index 3ea69ffe..14e1b8dd 100644 --- a/vendor/github.com/nlopes/slack/webhooks.go +++ b/vendor/github.com/nlopes/slack/webhooks.go @@ -9,26 +9,32 @@ import ( ) type WebhookMessage struct { - Text string `json:"text,omitempty"` - Attachments []Attachment `json:"attachments,omitempty"` + Username string `json:"username,omitempty"` + IconEmoji string `json:"icon_emoji,omitempty"` + IconURL string `json:"icon_url,omitempty"` + Channel string `json:"channel,omitempty"` + ThreadTimestamp string `json:"thread_ts,omitempty"` + Text string `json:"text,omitempty"` + Attachments []Attachment `json:"attachments,omitempty"` + Parse string `json:"parse,omitempty"` } func PostWebhook(url string, msg *WebhookMessage) error { + return PostWebhookCustomHTTP(url, http.DefaultClient, msg) +} + +func PostWebhookCustomHTTP(url string, httpClient *http.Client, msg *WebhookMessage) error { raw, err := json.Marshal(msg) if err != nil { return errors.Wrap(err, "marshal failed") } - response, err := http.Post(url, "application/json", bytes.NewReader(raw)) + response, err := httpClient.Post(url, "application/json", bytes.NewReader(raw)) if err != nil { return errors.Wrap(err, "failed to post webhook") } - if response.StatusCode != http.StatusOK { - return statusCodeError{Code: response.StatusCode, Status: response.Status} - } - - return nil + return checkStatusCode(response, discard{}) } |