github.com/mattermosttest/mattermost-server/v5@v5.0.0-20200917143240-9dfa12e121f9/app/auto_channels.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package app 5 6 import ( 7 "github.com/mattermost/mattermost-server/v5/model" 8 "github.com/mattermost/mattermost-server/v5/utils" 9 ) 10 11 type AutoChannelCreator struct { 12 a *App 13 userId string 14 team *model.Team 15 Fuzzy bool 16 DisplayNameLen utils.Range 17 DisplayNameCharset string 18 NameLen utils.Range 19 NameCharset string 20 ChannelType string 21 } 22 23 func NewAutoChannelCreator(a *App, team *model.Team, userId string) *AutoChannelCreator { 24 return &AutoChannelCreator{ 25 a: a, 26 team: team, 27 userId: userId, 28 Fuzzy: false, 29 DisplayNameLen: CHANNEL_DISPLAY_NAME_LEN, 30 DisplayNameCharset: utils.ALPHANUMERIC, 31 NameLen: CHANNEL_NAME_LEN, 32 NameCharset: utils.LOWERCASE, 33 ChannelType: CHANNEL_TYPE, 34 } 35 } 36 37 func (cfg *AutoChannelCreator) createRandomChannel() (*model.Channel, error) { 38 var displayName string 39 if cfg.Fuzzy { 40 displayName = utils.FuzzName() 41 } else { 42 displayName = utils.RandomName(cfg.NameLen, cfg.NameCharset) 43 } 44 name := utils.RandomName(cfg.NameLen, cfg.NameCharset) 45 46 channel := &model.Channel{ 47 TeamId: cfg.team.Id, 48 DisplayName: displayName, 49 Name: name, 50 Type: cfg.ChannelType, 51 CreatorId: cfg.userId, 52 } 53 54 channel, err := cfg.a.CreateChannel(channel, true) 55 if err != nil { 56 return nil, err 57 } 58 return channel, nil 59 } 60 61 func (cfg *AutoChannelCreator) CreateTestChannels(num utils.Range) ([]*model.Channel, error) { 62 numChannels := utils.RandIntFromRange(num) 63 channels := make([]*model.Channel, numChannels) 64 65 for i := 0; i < numChannels; i++ { 66 var err error 67 channels[i], err = cfg.createRandomChannel() 68 if err != nil { 69 return nil, err 70 } 71 } 72 73 return channels, nil 74 }