summaryrefslogtreecommitdiffstats
path: root/app/auto_teams.go
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-03-13 09:23:16 -0400
committerChristopher Speller <crspeller@gmail.com>2017-03-13 09:23:16 -0400
commite9c6cc269b5c9fe82e5f38d63344a07365bccd6b (patch)
tree711fefd3511dbd5a7f1a20225f00b766eb4808f7 /app/auto_teams.go
parent8b0eedbbcd47ba09142c72a71969840aa6e121d2 (diff)
downloadchat-e9c6cc269b5c9fe82e5f38d63344a07365bccd6b.tar.gz
chat-e9c6cc269b5c9fe82e5f38d63344a07365bccd6b.tar.bz2
chat-e9c6cc269b5c9fe82e5f38d63344a07365bccd6b.zip
Move command logic into app layer (#5617)
Diffstat (limited to 'app/auto_teams.go')
-rw-r--r--app/auto_teams.go81
1 files changed, 81 insertions, 0 deletions
diff --git a/app/auto_teams.go b/app/auto_teams.go
new file mode 100644
index 000000000..6e66f4446
--- /dev/null
+++ b/app/auto_teams.go
@@ -0,0 +1,81 @@
+// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+package app
+
+import (
+ "github.com/mattermost/platform/model"
+ "github.com/mattermost/platform/utils"
+)
+
+type TeamEnvironment struct {
+ Users []*model.User
+ Channels []*model.Channel
+}
+
+type AutoTeamCreator struct {
+ client *model.Client
+ Fuzzy bool
+ NameLength utils.Range
+ NameCharset string
+ DomainLength utils.Range
+ DomainCharset string
+ EmailLength utils.Range
+ EmailCharset string
+}
+
+func NewAutoTeamCreator(client *model.Client) *AutoTeamCreator {
+ return &AutoTeamCreator{
+ client: client,
+ Fuzzy: false,
+ NameLength: TEAM_NAME_LEN,
+ NameCharset: utils.LOWERCASE,
+ DomainLength: TEAM_DOMAIN_NAME_LEN,
+ DomainCharset: utils.LOWERCASE,
+ EmailLength: TEAM_EMAIL_LEN,
+ EmailCharset: utils.LOWERCASE,
+ }
+}
+
+func (cfg *AutoTeamCreator) createRandomTeam() (*model.Team, bool) {
+ var teamEmail string
+ var teamDisplayName string
+ var teamName string
+ if cfg.Fuzzy {
+ teamEmail = "success+" + model.NewId() + "simulator.amazonses.com"
+ teamDisplayName = utils.FuzzName()
+ teamName = utils.FuzzName()
+ } else {
+ teamEmail = "success+" + model.NewId() + "simulator.amazonses.com"
+ teamDisplayName = utils.RandomName(cfg.NameLength, cfg.NameCharset)
+ teamName = utils.RandomName(cfg.NameLength, cfg.NameCharset) + model.NewId()
+ }
+ team := &model.Team{
+ DisplayName: teamDisplayName,
+ Name: teamName,
+ Email: teamEmail,
+ Type: model.TEAM_OPEN,
+ }
+
+ result, err := cfg.client.CreateTeam(team)
+ if err != nil {
+ return nil, false
+ }
+ createdTeam := result.Data.(*model.Team)
+ return createdTeam, true
+}
+
+func (cfg *AutoTeamCreator) CreateTestTeams(num utils.Range) ([]*model.Team, bool) {
+ numTeams := utils.RandIntFromRange(num)
+ teams := make([]*model.Team, numTeams)
+
+ for i := 0; i < numTeams; i++ {
+ var err bool
+ teams[i], err = cfg.createRandomTeam()
+ if err != true {
+ return teams, false
+ }
+ }
+
+ return teams, true
+}