summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/slack-go/slack/webhooks_go112.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/slack-go/slack/webhooks_go112.go')
-rw-r--r--vendor/github.com/slack-go/slack/webhooks_go112.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/vendor/github.com/slack-go/slack/webhooks_go112.go b/vendor/github.com/slack-go/slack/webhooks_go112.go
new file mode 100644
index 00000000..4e0db0e4
--- /dev/null
+++ b/vendor/github.com/slack-go/slack/webhooks_go112.go
@@ -0,0 +1,34 @@
+// +build !go1.13
+
+package slack
+
+import (
+ "bytes"
+ "context"
+ "encoding/json"
+ "net/http"
+
+ "github.com/pkg/errors"
+)
+
+func PostWebhookCustomHTTPContext(ctx context.Context, url string, httpClient *http.Client, msg *WebhookMessage) error {
+ raw, err := json.Marshal(msg)
+ if err != nil {
+ return errors.Wrap(err, "marshal failed")
+ }
+
+ req, err := http.NewRequest(http.MethodPost, url, bytes.NewReader(raw))
+ if err != nil {
+ return errors.Wrap(err, "failed new request")
+ }
+ req = req.WithContext(ctx)
+ req.Header.Set("Content-Type", "application/json")
+
+ resp, err := httpClient.Do(req)
+ if err != nil {
+ return errors.Wrap(err, "failed to post webhook")
+ }
+ defer resp.Body.Close()
+
+ return checkStatusCode(resp, discard{})
+}