forked from lug/matterbridge
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			734 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			734 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// +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{})
 | 
						|
}
 |