summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/nlopes/slack/slack.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/nlopes/slack/slack.go')
-rw-r--r--vendor/github.com/nlopes/slack/slack.go153
1 files changed, 0 insertions, 153 deletions
diff --git a/vendor/github.com/nlopes/slack/slack.go b/vendor/github.com/nlopes/slack/slack.go
deleted file mode 100644
index 94230526..00000000
--- a/vendor/github.com/nlopes/slack/slack.go
+++ /dev/null
@@ -1,153 +0,0 @@
-package slack
-
-import (
- "context"
- "fmt"
- "log"
- "net/http"
- "net/url"
- "os"
-)
-
-const (
- // APIURL of the slack api.
- APIURL = "https://slack.com/api/"
- // WEBAPIURLFormat ...
- WEBAPIURLFormat = "https://%s.slack.com/api/users.admin.%s?t=%d"
-)
-
-// httpClient defines the minimal interface needed for an http.Client to be implemented.
-type httpClient interface {
- Do(*http.Request) (*http.Response, error)
-}
-
-// ResponseMetadata holds pagination metadata
-type ResponseMetadata struct {
- Cursor string `json:"next_cursor"`
-}
-
-func (t *ResponseMetadata) initialize() *ResponseMetadata {
- if t != nil {
- return t
- }
-
- return &ResponseMetadata{}
-}
-
-// AuthTestResponse ...
-type AuthTestResponse struct {
- URL string `json:"url"`
- Team string `json:"team"`
- User string `json:"user"`
- TeamID string `json:"team_id"`
- UserID string `json:"user_id"`
- // EnterpriseID is only returned when an enterprise id present
- EnterpriseID string `json:"enterprise_id,omitempty"`
-}
-
-type authTestResponseFull struct {
- SlackResponse
- AuthTestResponse
-}
-
-// Client for the slack api.
-type ParamOption func(*url.Values)
-
-type Client struct {
- token string
- endpoint string
- debug bool
- log ilogger
- httpclient httpClient
-}
-
-// Option defines an option for a Client
-type Option func(*Client)
-
-// OptionHTTPClient - provide a custom http client to the slack client.
-func OptionHTTPClient(client httpClient) func(*Client) {
- return func(c *Client) {
- c.httpclient = client
- }
-}
-
-// OptionDebug enable debugging for the client
-func OptionDebug(b bool) func(*Client) {
- return func(c *Client) {
- c.debug = b
- }
-}
-
-// OptionLog set logging for client.
-func OptionLog(l logger) func(*Client) {
- return func(c *Client) {
- c.log = internalLog{logger: l}
- }
-}
-
-// OptionAPIURL set the url for the client. only useful for testing.
-func OptionAPIURL(u string) func(*Client) {
- return func(c *Client) { c.endpoint = u }
-}
-
-// New builds a slack client from the provided token and options.
-func New(token string, options ...Option) *Client {
- s := &Client{
- token: token,
- endpoint: APIURL,
- httpclient: &http.Client{},
- log: log.New(os.Stderr, "nlopes/slack", log.LstdFlags|log.Lshortfile),
- }
-
- for _, opt := range options {
- opt(s)
- }
-
- return s
-}
-
-// AuthTest tests if the user is able to do authenticated requests or not
-func (api *Client) AuthTest() (response *AuthTestResponse, error error) {
- return api.AuthTestContext(context.Background())
-}
-
-// AuthTestContext tests if the user is able to do authenticated requests or not with a custom context
-func (api *Client) AuthTestContext(ctx context.Context) (response *AuthTestResponse, err error) {
- api.Debugf("Challenging auth...")
- responseFull := &authTestResponseFull{}
- err = api.postMethod(ctx, "auth.test", url.Values{"token": {api.token}}, responseFull)
- if err != nil {
- return nil, err
- }
-
- return &responseFull.AuthTestResponse, responseFull.Err()
-}
-
-// Debugf print a formatted debug line.
-func (api *Client) Debugf(format string, v ...interface{}) {
- if api.debug {
- api.log.Output(2, fmt.Sprintf(format, v...))
- }
-}
-
-// Debugln print a debug line.
-func (api *Client) Debugln(v ...interface{}) {
- if api.debug {
- api.log.Output(2, fmt.Sprintln(v...))
- }
-}
-
-// Debug returns if debug is enabled.
-func (api *Client) Debug() bool {
- return api.debug
-}
-
-// post to a slack web method.
-func (api *Client) postMethod(ctx context.Context, path string, values url.Values, intf interface{}) error {
- return postForm(ctx, api.httpclient, api.endpoint+path, values, intf, api)
-}
-
-// get a slack web method.
-func (api *Client) getMethod(ctx context.Context, path string, values url.Values, intf interface{}) error {
- return getResource(ctx, api.httpclient, api.endpoint+path, values, intf, api)
-}