diff options
Diffstat (limited to 'vendor/github.com/nlopes/slack/team.go')
-rw-r--r-- | vendor/github.com/nlopes/slack/team.go | 56 |
1 files changed, 36 insertions, 20 deletions
diff --git a/vendor/github.com/nlopes/slack/team.go b/vendor/github.com/nlopes/slack/team.go index 61b6a0a1..e70ac57e 100644 --- a/vendor/github.com/nlopes/slack/team.go +++ b/vendor/github.com/nlopes/slack/team.go @@ -1,14 +1,15 @@ package slack import ( + "context" "errors" "net/url" "strconv" ) const ( - DEFAULT_LOGINS_COUNT = 100 - DEFAULT_LOGINS_PAGE = 1 + DEFAULT_LOGINS_COUNT = 100 + DEFAULT_LOGINS_PAGE = 1 ) type TeamResponse struct { @@ -26,11 +27,10 @@ type TeamInfo struct { type LoginResponse struct { Logins []Login `json:"logins"` - Paging `json:"paging"` + Paging `json:"paging"` SlackResponse } - type Login struct { UserID string `json:"user_id"` Username string `json:"username"` @@ -47,7 +47,6 @@ type Login struct { type BillableInfoResponse struct { BillableInfo map[string]BillingActive `json:"billable_info"` SlackResponse - } type BillingActive struct { @@ -56,8 +55,8 @@ type BillingActive struct { // AccessLogParameters contains all the parameters necessary (including the optional ones) for a GetAccessLogs() request type AccessLogParameters struct { - Count int - Page int + Count int + Page int } // NewAccessLogParameters provides an instance of AccessLogParameters with all the sane default values set @@ -68,10 +67,9 @@ func NewAccessLogParameters() AccessLogParameters { } } - -func teamRequest(path string, values url.Values, debug bool) (*TeamResponse, error) { +func teamRequest(ctx context.Context, path string, values url.Values, debug bool) (*TeamResponse, error) { response := &TeamResponse{} - err := post(path, values, response, debug) + err := post(ctx, path, values, response, debug) if err != nil { return nil, err } @@ -83,9 +81,9 @@ func teamRequest(path string, values url.Values, debug bool) (*TeamResponse, err return response, nil } -func billableInfoRequest(path string, values url.Values, debug bool) (map[string]BillingActive, error) { +func billableInfoRequest(ctx context.Context, path string, values url.Values, debug bool) (map[string]BillingActive, error) { response := &BillableInfoResponse{} - err := post(path, values, response, debug) + err := post(ctx, path, values, response, debug) if err != nil { return nil, err } @@ -97,9 +95,9 @@ func billableInfoRequest(path string, values url.Values, debug bool) (map[string return response.BillableInfo, nil } -func accessLogsRequest(path string, values url.Values, debug bool) (*LoginResponse, error) { +func accessLogsRequest(ctx context.Context, path string, values url.Values, debug bool) (*LoginResponse, error) { response := &LoginResponse{} - err := post(path, values, response, debug) + err := post(ctx, path, values, response, debug) if err != nil { return nil, err } @@ -109,14 +107,18 @@ func accessLogsRequest(path string, values url.Values, debug bool) (*LoginRespon return response, nil } - // GetTeamInfo gets the Team Information of the user func (api *Client) GetTeamInfo() (*TeamInfo, error) { + return api.GetTeamInfoContext(context.Background()) +} + +// GetTeamInfoContext gets the Team Information of the user with a custom context +func (api *Client) GetTeamInfoContext(ctx context.Context) (*TeamInfo, error) { values := url.Values{ "token": {api.config.token}, } - response, err := teamRequest("team.info", values, api.debug) + response, err := teamRequest(ctx, "team.info", values, api.debug) if err != nil { return nil, err } @@ -125,6 +127,11 @@ func (api *Client) GetTeamInfo() (*TeamInfo, error) { // GetAccessLogs retrieves a page of logins according to the parameters given func (api *Client) GetAccessLogs(params AccessLogParameters) ([]Login, *Paging, error) { + return api.GetAccessLogsContext(context.Background(), params) +} + +// GetAccessLogsContext retrieves a page of logins according to the parameters given with a custom context +func (api *Client) GetAccessLogsContext(ctx context.Context, params AccessLogParameters) ([]Login, *Paging, error) { values := url.Values{ "token": {api.config.token}, } @@ -134,7 +141,7 @@ func (api *Client) GetAccessLogs(params AccessLogParameters) ([]Login, *Paging, if params.Page != DEFAULT_LOGINS_PAGE { values.Add("page", strconv.Itoa(params.Page)) } - response, err := accessLogsRequest("team.accessLogs", values, api.debug) + response, err := accessLogsRequest(ctx, "team.accessLogs", values, api.debug) if err != nil { return nil, nil, err } @@ -142,19 +149,28 @@ func (api *Client) GetAccessLogs(params AccessLogParameters) ([]Login, *Paging, } func (api *Client) GetBillableInfo(user string) (map[string]BillingActive, error) { + return api.GetBillableInfoContext(context.Background(), user) +} + +func (api *Client) GetBillableInfoContext(ctx context.Context, user string) (map[string]BillingActive, error) { values := url.Values{ "token": {api.config.token}, - "user": {user}, + "user": {user}, } - return billableInfoRequest("team.billableInfo", values, api.debug) + return billableInfoRequest(ctx, "team.billableInfo", values, api.debug) } // GetBillableInfoForTeam returns the billing_active status of all users on the team. func (api *Client) GetBillableInfoForTeam() (map[string]BillingActive, error) { + return api.GetBillableInfoForTeamContext(context.Background()) +} + +// GetBillableInfoForTeamContext returns the billing_active status of all users on the team with a custom context +func (api *Client) GetBillableInfoForTeamContext(ctx context.Context) (map[string]BillingActive, error) { values := url.Values{ "token": {api.config.token}, } - return billableInfoRequest("team.billableInfo", values, api.debug) + return billableInfoRequest(ctx, "team.billableInfo", values, api.debug) } |