Этот коммит содержится в:
Saturnino Abril
2017-04-04 02:34:14 +09:00
коммит произвёл Corey Hulen
родитель 6b61834ab1
Коммит 43e795448f
10 изменённых файлов: 364 добавлений и 1 удалений

Просмотреть файл

@@ -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 {

Просмотреть файл

@@ -7,6 +7,7 @@ import (
"encoding/binary"
"fmt"
"net/http"
"reflect"
"strconv"
"strings"
"testing"
@@ -405,6 +406,81 @@ func TestGetTeamByName(t *testing.T) {
CheckForbiddenStatus(t, resp)
}
func TestSearchAllTeams(t *testing.T) {
th := Setup().InitBasic().InitSystemAdmin()
defer TearDown()
Client := th.Client
oTeam := th.BasicTeam
pTeam := &model.Team{DisplayName: "PName", Name: GenerateTestTeamName(), Email: GenerateTestEmail(), Type: model.TEAM_INVITE}
Client.CreateTeam(pTeam)
rteams, resp := Client.SearchTeams(&model.TeamSearch{Term: oTeam.Name})
CheckNoError(t, resp)
if len(rteams) != 1 {
t.Fatal("should have returned 1 team")
}
if !reflect.DeepEqual(rteams[0], oTeam) {
t.Fatal("invalid team")
}
rteams, resp = Client.SearchTeams(&model.TeamSearch{Term: oTeam.DisplayName})
CheckNoError(t, resp)
if len(rteams) != 1 {
t.Fatal("should have returned 1 team")
}
if !reflect.DeepEqual(rteams[0], oTeam) {
t.Fatal("invalid team")
}
rteams, resp = Client.SearchTeams(&model.TeamSearch{Term: pTeam.Name})
CheckNoError(t, resp)
if len(rteams) != 0 {
t.Fatal("should have not returned team")
}
rteams, resp = Client.SearchTeams(&model.TeamSearch{Term: pTeam.DisplayName})
CheckNoError(t, resp)
if len(rteams) != 0 {
t.Fatal("should have not returned team")
}
rteams, resp = th.SystemAdminClient.SearchTeams(&model.TeamSearch{Term: oTeam.Name})
CheckNoError(t, resp)
if len(rteams) != 1 {
t.Fatal("should have returned 1 team")
}
rteams, resp = th.SystemAdminClient.SearchTeams(&model.TeamSearch{Term: pTeam.DisplayName})
CheckNoError(t, resp)
if len(rteams) != 1 {
t.Fatal("should have returned 1 team")
}
rteams, resp = Client.SearchTeams(&model.TeamSearch{Term: "junk"})
CheckNoError(t, resp)
if len(rteams) != 0 {
t.Fatal("should have not returned team")
}
Client.Logout()
rteams, resp = Client.SearchTeams(&model.TeamSearch{Term: pTeam.Name})
CheckUnauthorizedStatus(t, resp)
rteams, resp = Client.SearchTeams(&model.TeamSearch{Term: pTeam.DisplayName})
CheckUnauthorizedStatus(t, resp)
}
func TestGetTeamsForUser(t *testing.T) {
th := Setup().InitBasic().InitSystemAdmin()
defer TearDown()