diff options
Diffstat (limited to 'vendor/github.com/nlopes/slack/team.go')
-rw-r--r-- | vendor/github.com/nlopes/slack/team.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/vendor/github.com/nlopes/slack/team.go b/vendor/github.com/nlopes/slack/team.go new file mode 100644 index 00000000..41507f68 --- /dev/null +++ b/vendor/github.com/nlopes/slack/team.go @@ -0,0 +1,46 @@ +package slack + +import ( + "errors" + "net/url" +) + +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"` +} + +func teamRequest(path string, values url.Values, debug bool) (*TeamResponse, error) { + response := &TeamResponse{} + err := post(path, values, response, debug) + if err != nil { + return nil, err + } + + if !response.Ok { + return nil, errors.New(response.Error) + } + + return response, nil +} + +// GetTeamInfo gets the Team Information of the user +func (api *Client) GetTeamInfo() (*TeamInfo, error) { + values := url.Values{ + "token": {api.config.token}, + } + + response, err := teamRequest("team.info", values, api.debug) + if err != nil { + return nil, err + } + return &response.Team, nil +} |