summaryrefslogtreecommitdiffstats
path: root/model
diff options
context:
space:
mode:
authorSaturnino Abril <saturnino.abril@gmail.com>2017-03-24 18:13:27 +0900
committerGeorge Goldberg <george@gberg.me>2017-03-24 09:13:27 +0000
commitf1274a7ec29919e9c99cf41f5c1b47589f38cfb1 (patch)
tree67e0c36cd13ba7ff74446d218141f706cb69240d /model
parent1167b391854957a5d58ed569c1dc2f80e9ccc599 (diff)
downloadchat-f1274a7ec29919e9c99cf41f5c1b47589f38cfb1.tar.gz
chat-f1274a7ec29919e9c99cf41f5c1b47589f38cfb1.tar.bz2
chat-f1274a7ec29919e9c99cf41f5c1b47589f38cfb1.zip
Endpoint for APIv4 POST /teams/{team_id}/members (#5804)
Diffstat (limited to 'model')
-rw-r--r--model/client4.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/model/client4.go b/model/client4.go
index c74d76e04..31b754bd3 100644
--- a/model/client4.go
+++ b/model/client4.go
@@ -803,6 +803,28 @@ func (c *Client4) GetTeamMembersByIds(teamId string, userIds []string) ([]*TeamM
}
}
+// AddTeamMember adds user to a team and return a team member.
+func (c *Client4) AddTeamMember(teamId, userId, hash, dataToHash, inviteId string) (*TeamMember, *Response) {
+ member := &TeamMember{TeamId: teamId, UserId: userId}
+
+ var query string
+
+ if inviteId != "" {
+ query += fmt.Sprintf("?invite_id=%v", inviteId)
+ }
+
+ if hash != "" && dataToHash != "" {
+ query += fmt.Sprintf("?hash=%v&data=%v", hash, dataToHash)
+ }
+
+ if r, err := c.DoApiPost(c.GetTeamMembersRoute(teamId)+query, member.ToJson()); err != nil {
+ return nil, &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return TeamMemberFromJson(r.Body), BuildResponse(r)
+ }
+}
+
// GetTeamStats returns a team stats based on the team id string.
// Must be authenticated.
func (c *Client4) GetTeamStats(teamId, etag string) (*TeamStats, *Response) {