diff options
Diffstat (limited to 'vendor/github.com/nlopes/slack/usergroups.go')
-rw-r--r-- | vendor/github.com/nlopes/slack/usergroups.go | 258 |
1 files changed, 0 insertions, 258 deletions
diff --git a/vendor/github.com/nlopes/slack/usergroups.go b/vendor/github.com/nlopes/slack/usergroups.go deleted file mode 100644 index f3206591..00000000 --- a/vendor/github.com/nlopes/slack/usergroups.go +++ /dev/null @@ -1,258 +0,0 @@ -package slack - -import ( - "context" - "net/url" - "strings" -) - -// UserGroup contains all the information of a user group -type UserGroup struct { - ID string `json:"id"` - TeamID string `json:"team_id"` - IsUserGroup bool `json:"is_usergroup"` - Name string `json:"name"` - Description string `json:"description"` - Handle string `json:"handle"` - IsExternal bool `json:"is_external"` - DateCreate JSONTime `json:"date_create"` - DateUpdate JSONTime `json:"date_update"` - DateDelete JSONTime `json:"date_delete"` - AutoType string `json:"auto_type"` - CreatedBy string `json:"created_by"` - UpdatedBy string `json:"updated_by"` - DeletedBy string `json:"deleted_by"` - Prefs UserGroupPrefs `json:"prefs"` - UserCount int `json:"user_count"` - Users []string `json:"users"` -} - -// UserGroupPrefs contains default channels and groups (private channels) -type UserGroupPrefs struct { - Channels []string `json:"channels"` - Groups []string `json:"groups"` -} - -type userGroupResponseFull struct { - UserGroups []UserGroup `json:"usergroups"` - UserGroup UserGroup `json:"usergroup"` - Users []string `json:"users"` - SlackResponse -} - -func (api *Client) userGroupRequest(ctx context.Context, path string, values url.Values) (*userGroupResponseFull, error) { - response := &userGroupResponseFull{} - err := api.postMethod(ctx, path, values, response) - if err != nil { - return nil, err - } - - return response, response.Err() -} - -// CreateUserGroup creates a new user group -func (api *Client) CreateUserGroup(userGroup UserGroup) (UserGroup, error) { - return api.CreateUserGroupContext(context.Background(), userGroup) -} - -// CreateUserGroupContext creates a new user group with a custom context -func (api *Client) CreateUserGroupContext(ctx context.Context, userGroup UserGroup) (UserGroup, error) { - values := url.Values{ - "token": {api.token}, - "name": {userGroup.Name}, - } - - if userGroup.Handle != "" { - values["handle"] = []string{userGroup.Handle} - } - - if userGroup.Description != "" { - values["description"] = []string{userGroup.Description} - } - - if len(userGroup.Prefs.Channels) > 0 { - values["channels"] = []string{strings.Join(userGroup.Prefs.Channels, ",")} - } - - response, err := api.userGroupRequest(ctx, "usergroups.create", values) - if err != nil { - return UserGroup{}, err - } - return response.UserGroup, nil -} - -// DisableUserGroup disables an existing user group -func (api *Client) DisableUserGroup(userGroup string) (UserGroup, error) { - return api.DisableUserGroupContext(context.Background(), userGroup) -} - -// DisableUserGroupContext disables an existing user group with a custom context -func (api *Client) DisableUserGroupContext(ctx context.Context, userGroup string) (UserGroup, error) { - values := url.Values{ - "token": {api.token}, - "usergroup": {userGroup}, - } - - response, err := api.userGroupRequest(ctx, "usergroups.disable", values) - if err != nil { - return UserGroup{}, err - } - return response.UserGroup, nil -} - -// EnableUserGroup enables an existing user group -func (api *Client) EnableUserGroup(userGroup string) (UserGroup, error) { - return api.EnableUserGroupContext(context.Background(), userGroup) -} - -// EnableUserGroupContext enables an existing user group with a custom context -func (api *Client) EnableUserGroupContext(ctx context.Context, userGroup string) (UserGroup, error) { - values := url.Values{ - "token": {api.token}, - "usergroup": {userGroup}, - } - - response, err := api.userGroupRequest(ctx, "usergroups.enable", values) - if err != nil { - return UserGroup{}, err - } - return response.UserGroup, nil -} - -// GetUserGroupsOption options for the GetUserGroups method call. -type GetUserGroupsOption func(*GetUserGroupsParams) - -// GetUserGroupsOptionIncludeCount include the number of users in each User Group (default: false) -func GetUserGroupsOptionIncludeCount(b bool) GetUserGroupsOption { - return func(params *GetUserGroupsParams) { - params.IncludeCount = b - } -} - -// GetUserGroupsOptionIncludeDisabled include disabled User Groups (default: false) -func GetUserGroupsOptionIncludeDisabled(b bool) GetUserGroupsOption { - return func(params *GetUserGroupsParams) { - params.IncludeDisabled = b - } -} - -// GetUserGroupsOptionIncludeUsers include the list of users for each User Group (default: false) -func GetUserGroupsOptionIncludeUsers(b bool) GetUserGroupsOption { - return func(params *GetUserGroupsParams) { - params.IncludeUsers = b - } -} - -// GetUserGroupsParams contains arguments for GetUserGroups method call -type GetUserGroupsParams struct { - IncludeCount bool - IncludeDisabled bool - IncludeUsers bool -} - -// GetUserGroups returns a list of user groups for the team -func (api *Client) GetUserGroups(options ...GetUserGroupsOption) ([]UserGroup, error) { - return api.GetUserGroupsContext(context.Background(), options...) -} - -// GetUserGroupsContext returns a list of user groups for the team with a custom context -func (api *Client) GetUserGroupsContext(ctx context.Context, options ...GetUserGroupsOption) ([]UserGroup, error) { - params := GetUserGroupsParams{} - - for _, opt := range options { - opt(¶ms) - } - - values := url.Values{ - "token": {api.token}, - } - if params.IncludeCount { - values.Add("include_count", "true") - } - if params.IncludeDisabled { - values.Add("include_disabled", "true") - } - if params.IncludeUsers { - values.Add("include_users", "true") - } - - response, err := api.userGroupRequest(ctx, "usergroups.list", values) - if err != nil { - return nil, err - } - return response.UserGroups, nil -} - -// UpdateUserGroup will update an existing user group -func (api *Client) UpdateUserGroup(userGroup UserGroup) (UserGroup, error) { - return api.UpdateUserGroupContext(context.Background(), userGroup) -} - -// UpdateUserGroupContext will update an existing user group with a custom context -func (api *Client) UpdateUserGroupContext(ctx context.Context, userGroup UserGroup) (UserGroup, error) { - values := url.Values{ - "token": {api.token}, - "usergroup": {userGroup.ID}, - } - - if userGroup.Name != "" { - values["name"] = []string{userGroup.Name} - } - - if userGroup.Handle != "" { - values["handle"] = []string{userGroup.Handle} - } - - if userGroup.Description != "" { - values["description"] = []string{userGroup.Description} - } - - if len(userGroup.Prefs.Channels) > 0 { - values["channels"] = []string{strings.Join(userGroup.Prefs.Channels, ",")} - } - - response, err := api.userGroupRequest(ctx, "usergroups.update", values) - if err != nil { - return UserGroup{}, err - } - return response.UserGroup, nil -} - -// GetUserGroupMembers will retrieve the current list of users in a group -func (api *Client) GetUserGroupMembers(userGroup string) ([]string, error) { - return api.GetUserGroupMembersContext(context.Background(), userGroup) -} - -// GetUserGroupMembersContext will retrieve the current list of users in a group with a custom context -func (api *Client) GetUserGroupMembersContext(ctx context.Context, userGroup string) ([]string, error) { - values := url.Values{ - "token": {api.token}, - "usergroup": {userGroup}, - } - - response, err := api.userGroupRequest(ctx, "usergroups.users.list", values) - if err != nil { - return []string{}, err - } - return response.Users, nil -} - -// UpdateUserGroupMembers will update the members of an existing user group -func (api *Client) UpdateUserGroupMembers(userGroup string, members string) (UserGroup, error) { - return api.UpdateUserGroupMembersContext(context.Background(), userGroup, members) -} - -// UpdateUserGroupMembersContext will update the members of an existing user group with a custom context -func (api *Client) UpdateUserGroupMembersContext(ctx context.Context, userGroup string, members string) (UserGroup, error) { - values := url.Values{ - "token": {api.token}, - "usergroup": {userGroup}, - "users": {members}, - } - - response, err := api.userGroupRequest(ctx, "usergroups.users.update", values) - if err != nil { - return UserGroup{}, err - } - return response.UserGroup, nil -} |