From e9c6cc269b5c9fe82e5f38d63344a07365bccd6b Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Mon, 13 Mar 2017 09:23:16 -0400 Subject: Move command logic into app layer (#5617) --- app/auto_teams.go | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 app/auto_teams.go (limited to 'app/auto_teams.go') 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 +} -- cgit v1.2.3-1-g7c22