From 8df6d5cc30d22a608c58635449047e421add82ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Thu, 12 Apr 2018 17:50:44 +0200 Subject: Add list command to teams command in CLI (#8612) * Add list command to teams command in CLI * Using App instead of Store to get the teams --- cmd/commands/team.go | 27 +++++++++++++++++++++++++++ cmd/commands/team_test.go | 18 ++++++++++++++++++ 2 files changed, 45 insertions(+) (limited to 'cmd') diff --git a/cmd/commands/team.go b/cmd/commands/team.go index 9c07b7456..05de714d6 100644 --- a/cmd/commands/team.go +++ b/cmd/commands/team.go @@ -52,6 +52,14 @@ Permanently deletes a team along with all related information including posts fr RunE: deleteTeamsCmdF, } +var ListTeamsCmd = &cobra.Command{ + Use: "list", + Short: "List all teams.", + Long: `List all teams on the server.`, + Example: " team list", + RunE: listTeamsCmdF, +} + func init() { TeamCreateCmd.Flags().String("name", "", "Team Name") TeamCreateCmd.Flags().String("display_name", "", "Team Display Name") @@ -65,6 +73,7 @@ func init() { RemoveUsersCmd, AddUsersCmd, DeleteTeamsCmd, + ListTeamsCmd, ) cmd.RootCmd.AddCommand(TeamCmd) } @@ -216,3 +225,21 @@ func deleteTeamsCmdF(command *cobra.Command, args []string) error { func deleteTeam(a *app.App, team *model.Team) *model.AppError { return a.PermanentDeleteTeam(team) } + +func listTeamsCmdF(command *cobra.Command, args []string) error { + a, err := cmd.InitDBCommandContextCobra(command) + if err != nil { + return err + } + + teams, err2 := a.GetAllTeams() + if err2 != nil { + return err2 + } + + for _, team := range teams { + cmd.CommandPrettyPrintln(team.Name) + } + + return nil +} diff --git a/cmd/commands/team_test.go b/cmd/commands/team_test.go index 1a91df4bc..ac006dbe1 100644 --- a/cmd/commands/team_test.go +++ b/cmd/commands/team_test.go @@ -4,6 +4,7 @@ package commands import ( + "strings" "testing" "github.com/mattermost/mattermost-server/api" @@ -78,3 +79,20 @@ func TestLeaveTeam(t *testing.T) { } } } + +func TestListTeams(t *testing.T) { + th := api.Setup().InitBasic() + defer th.TearDown() + + id := model.NewId() + name := "name" + id + displayName := "Name " + id + + cmd.CheckCommand(t, "team", "create", "--name", name, "--display_name", displayName) + + output := cmd.CheckCommand(t, "team", "list", th.BasicTeam.Name, th.BasicUser.Email) + + if !strings.Contains(string(output), name) { + t.Fatal("should have the created team") + } +} -- cgit v1.2.3-1-g7c22