summaryrefslogtreecommitdiffstats
path: root/model/client4.go
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-03-13 08:29:41 -0400
committerGeorge Goldberg <george@gberg.me>2017-03-13 12:29:41 +0000
commit1860d05d623b6fd7670121a7e2391605d1281b27 (patch)
tree8ac40b5663473342fed4ba2a146e2551e9f56ab6 /model/client4.go
parentc372ceebf87295408072a40c63df7c4be9bc2abc (diff)
downloadchat-1860d05d623b6fd7670121a7e2391605d1281b27.tar.gz
chat-1860d05d623b6fd7670121a7e2391605d1281b27.tar.bz2
chat-1860d05d623b6fd7670121a7e2391605d1281b27.zip
Implement GET /users/autocomplete endpoint for APIv4 (#5742)
Diffstat (limited to 'model/client4.go')
-rw-r--r--model/client4.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/model/client4.go b/model/client4.go
index 6441abcc2..9a1d6e1cf 100644
--- a/model/client4.go
+++ b/model/client4.go
@@ -339,6 +339,39 @@ func (c *Client4) GetUserByEmail(email, etag string) (*User, *Response) {
}
}
+// AutocompleteUsersInTeam returns the users on a team based on search term.
+func (c *Client4) AutocompleteUsersInTeam(teamId string, username string, etag string) (*UserAutocomplete, *Response) {
+ query := fmt.Sprintf("?in_team=%v&name=%v", teamId, username)
+ if r, err := c.DoApiGet(c.GetUsersRoute()+"/autocomplete"+query, etag); err != nil {
+ return nil, &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return UserAutocompleteFromJson(r.Body), BuildResponse(r)
+ }
+}
+
+// AutocompleteUsersInChannel returns the users in a channel based on search term.
+func (c *Client4) AutocompleteUsersInChannel(teamId string, channelId string, username string, etag string) (*UserAutocomplete, *Response) {
+ query := fmt.Sprintf("?in_team=%v&in_channel=%v&name=%v", teamId, channelId, username)
+ if r, err := c.DoApiGet(c.GetUsersRoute()+"/autocomplete"+query, etag); err != nil {
+ return nil, &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return UserAutocompleteFromJson(r.Body), BuildResponse(r)
+ }
+}
+
+// AutocompleteUsers returns the users in the system based on search term.
+func (c *Client4) AutocompleteUsers(username string, etag string) (*UserAutocomplete, *Response) {
+ query := fmt.Sprintf("?name=%v", username)
+ if r, err := c.DoApiGet(c.GetUsersRoute()+"/autocomplete"+query, etag); err != nil {
+ return nil, &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return UserAutocompleteFromJson(r.Body), BuildResponse(r)
+ }
+}
+
// GetProfileImage gets user's profile image. Must be logged in or be a system administrator.
func (c *Client4) GetProfileImage(userId, etag string) ([]byte, *Response) {
if r, err := c.DoApiGet(c.GetUserRoute(userId)+"/image", etag); err != nil {