github.com/masterhung0112/hk_server/v5@v5.0.0-20220302090640-ec71aef15e1c/app/slashcommands/auto_teams.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package slashcommands 5 6 import ( 7 "github.com/masterhung0112/hk_server/v5/model" 8 "github.com/masterhung0112/hk_server/v5/utils" 9 ) 10 11 type TeamEnvironment struct { 12 Users []*model.User 13 Channels []*model.Channel 14 } 15 16 type AutoTeamCreator struct { 17 client *model.Client4 18 Fuzzy bool 19 NameLength utils.Range 20 NameCharset string 21 DomainLength utils.Range 22 DomainCharset string 23 EmailLength utils.Range 24 EmailCharset string 25 } 26 27 func NewAutoTeamCreator(client *model.Client4) *AutoTeamCreator { 28 return &AutoTeamCreator{ 29 client: client, 30 Fuzzy: false, 31 NameLength: TeamNameLen, 32 NameCharset: utils.LOWERCASE, 33 DomainLength: TeamDomainNameLen, 34 DomainCharset: utils.LOWERCASE, 35 EmailLength: TeamEmailLen, 36 EmailCharset: utils.LOWERCASE, 37 } 38 } 39 40 func (cfg *AutoTeamCreator) createRandomTeam() (*model.Team, error) { 41 var teamEmail string 42 var teamDisplayName string 43 var teamName string 44 if cfg.Fuzzy { 45 teamEmail = "success+" + model.NewId() + "simulator.amazonses.com" 46 teamDisplayName = utils.FuzzName() 47 teamName = model.NewRandomTeamName() 48 } else { 49 teamEmail = "success+" + model.NewId() + "simulator.amazonses.com" 50 teamDisplayName = utils.RandomName(cfg.NameLength, cfg.NameCharset) 51 teamName = utils.RandomName(cfg.NameLength, cfg.NameCharset) + model.NewId() 52 } 53 team := &model.Team{ 54 DisplayName: teamDisplayName, 55 Name: teamName, 56 Email: teamEmail, 57 Type: model.TEAM_OPEN, 58 } 59 60 createdTeam, resp := cfg.client.CreateTeam(team) 61 if resp.Error != nil { 62 return nil, resp.Error 63 } 64 return createdTeam, nil 65 } 66 67 func (cfg *AutoTeamCreator) CreateTestTeams(num utils.Range) ([]*model.Team, error) { 68 numTeams := utils.RandIntFromRange(num) 69 teams := make([]*model.Team, numTeams) 70 71 for i := 0; i < numTeams; i++ { 72 var err error 73 teams[i], err = cfg.createRandomTeam() 74 if err != nil { 75 return nil, err 76 } 77 } 78 79 return teams, nil 80 }