diff options
author | Saturnino Abril <saturnino.abril@gmail.com> | 2017-04-04 02:34:14 +0900 |
---|---|---|
committer | Corey Hulen <corey@hulen.com> | 2017-04-03 10:34:14 -0700 |
commit | 43e795448f62fa86f3dad7940fc2297c44a6ea9c (patch) | |
tree | aec7f651c2177f9cc02824f014bccd81e96c542a /api4/team.go | |
parent | 6b61834ab14e9a4e51c29dd2904a1332c327aae6 (diff) | |
download | chat-43e795448f62fa86f3dad7940fc2297c44a6ea9c.tar.gz chat-43e795448f62fa86f3dad7940fc2297c44a6ea9c.tar.bz2 chat-43e795448f62fa86f3dad7940fc2297c44a6ea9c.zip |
APIv4 post /teams/search (#5931)
Diffstat (limited to 'api4/team.go')
-rw-r--r-- | api4/team.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/api4/team.go b/api4/team.go index 85a083ee1..d71ccbf2e 100644 --- a/api4/team.go +++ b/api4/team.go @@ -20,6 +20,7 @@ func InitTeam() { BaseRoutes.Teams.Handle("", ApiSessionRequired(createTeam)).Methods("POST") BaseRoutes.Teams.Handle("", ApiSessionRequired(getAllTeams)).Methods("GET") + BaseRoutes.Teams.Handle("/search", ApiSessionRequired(searchTeams)).Methods("POST") BaseRoutes.TeamsForUser.Handle("", ApiSessionRequired(getTeamsForUser)).Methods("GET") BaseRoutes.TeamsForUser.Handle("/unread", ApiSessionRequired(getTeamsUnreadForUser)).Methods("GET") @@ -456,6 +457,35 @@ func getAllTeams(c *Context, w http.ResponseWriter, r *http.Request) { w.Write([]byte(model.TeamListToJson(teams))) } +func searchTeams(c *Context, w http.ResponseWriter, r *http.Request) { + props := model.TeamSearchFromJson(r.Body) + if props == nil { + c.SetInvalidParam("team_search") + return + } + + if len(props.Term) == 0 { + c.SetInvalidParam("term") + return + } + + var teams []*model.Team + var err *model.AppError + + if app.SessionHasPermissionTo(c.Session, model.PERMISSION_MANAGE_SYSTEM) { + teams, err = app.SearchAllTeams(props.Term) + } else { + teams, err = app.SearchOpenTeams(props.Term) + } + + if err != nil { + c.Err = err + return + } + + w.Write([]byte(model.TeamListToJson(teams))) +} + func teamExists(c *Context, w http.ResponseWriter, r *http.Request) { c.RequireTeamName() if c.Err != nil { |