diff options
Diffstat (limited to 'vendor/github.com/nlopes/slack/team.go')
-rw-r--r-- | vendor/github.com/nlopes/slack/team.go | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/vendor/github.com/nlopes/slack/team.go b/vendor/github.com/nlopes/slack/team.go deleted file mode 100644 index 029e2b5b..00000000 --- a/vendor/github.com/nlopes/slack/team.go +++ /dev/null @@ -1,167 +0,0 @@ -package slack - -import ( - "context" - "net/url" - "strconv" -) - -const ( - DEFAULT_LOGINS_COUNT = 100 - DEFAULT_LOGINS_PAGE = 1 -) - -type TeamResponse struct { - Team TeamInfo `json:"team"` - SlackResponse -} - -type TeamInfo struct { - ID string `json:"id"` - Name string `json:"name"` - Domain string `json:"domain"` - EmailDomain string `json:"email_domain"` - Icon map[string]interface{} `json:"icon"` -} - -type LoginResponse struct { - Logins []Login `json:"logins"` - Paging `json:"paging"` - SlackResponse -} - -type Login struct { - UserID string `json:"user_id"` - Username string `json:"username"` - DateFirst int `json:"date_first"` - DateLast int `json:"date_last"` - Count int `json:"count"` - IP string `json:"ip"` - UserAgent string `json:"user_agent"` - ISP string `json:"isp"` - Country string `json:"country"` - Region string `json:"region"` -} - -type BillableInfoResponse struct { - BillableInfo map[string]BillingActive `json:"billable_info"` - SlackResponse -} - -type BillingActive struct { - BillingActive bool `json:"billing_active"` -} - -// AccessLogParameters contains all the parameters necessary (including the optional ones) for a GetAccessLogs() request -type AccessLogParameters struct { - Count int - Page int -} - -// NewAccessLogParameters provides an instance of AccessLogParameters with all the sane default values set -func NewAccessLogParameters() AccessLogParameters { - return AccessLogParameters{ - Count: DEFAULT_LOGINS_COUNT, - Page: DEFAULT_LOGINS_PAGE, - } -} - -func (api *Client) teamRequest(ctx context.Context, path string, values url.Values) (*TeamResponse, error) { - response := &TeamResponse{} - err := api.postMethod(ctx, path, values, response) - if err != nil { - return nil, err - } - - return response, response.Err() -} - -func (api *Client) billableInfoRequest(ctx context.Context, path string, values url.Values) (map[string]BillingActive, error) { - response := &BillableInfoResponse{} - err := api.postMethod(ctx, path, values, response) - if err != nil { - return nil, err - } - - return response.BillableInfo, response.Err() -} - -func (api *Client) accessLogsRequest(ctx context.Context, path string, values url.Values) (*LoginResponse, error) { - response := &LoginResponse{} - err := api.postMethod(ctx, path, values, response) - if err != nil { - return nil, err - } - return response, response.Err() -} - -// 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.token}, - } - - response, err := api.teamRequest(ctx, "team.info", values) - if err != nil { - return nil, err - } - return &response.Team, nil -} - -// 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.token}, - } - if params.Count != DEFAULT_LOGINS_COUNT { - values.Add("count", strconv.Itoa(params.Count)) - } - if params.Page != DEFAULT_LOGINS_PAGE { - values.Add("page", strconv.Itoa(params.Page)) - } - - response, err := api.accessLogsRequest(ctx, "team.accessLogs", values) - if err != nil { - return nil, nil, err - } - return response.Logins, &response.Paging, nil -} - -// GetBillableInfo ... -func (api *Client) GetBillableInfo(user string) (map[string]BillingActive, error) { - return api.GetBillableInfoContext(context.Background(), user) -} - -// GetBillableInfoContext ... -func (api *Client) GetBillableInfoContext(ctx context.Context, user string) (map[string]BillingActive, error) { - values := url.Values{ - "token": {api.token}, - "user": {user}, - } - - return api.billableInfoRequest(ctx, "team.billableInfo", values) -} - -// 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.token}, - } - - return api.billableInfoRequest(ctx, "team.billableInfo", values) -} |