github.com/masterhung0112/hk_server/v5@v5.0.0-20220302090640-ec71aef15e1c/app/slashcommands/auto_channels.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/app" 8 "github.com/masterhung0112/hk_server/v5/app/request" 9 "github.com/masterhung0112/hk_server/v5/model" 10 "github.com/masterhung0112/hk_server/v5/utils" 11 ) 12 13 type AutoChannelCreator struct { 14 a *app.App 15 userID string 16 team *model.Team 17 Fuzzy bool 18 DisplayNameLen utils.Range 19 DisplayNameCharset string 20 NameLen utils.Range 21 NameCharset string 22 ChannelType string 23 } 24 25 func NewAutoChannelCreator(a *app.App, team *model.Team, userID string) *AutoChannelCreator { 26 return &AutoChannelCreator{ 27 a: a, 28 team: team, 29 userID: userID, 30 Fuzzy: false, 31 DisplayNameLen: ChannelDisplayNameLen, 32 DisplayNameCharset: utils.ALPHANUMERIC, 33 NameLen: ChannelNameLen, 34 NameCharset: utils.LOWERCASE, 35 ChannelType: ChannelType, 36 } 37 } 38 39 func (cfg *AutoChannelCreator) createRandomChannel(c *request.Context) (*model.Channel, error) { 40 var displayName string 41 if cfg.Fuzzy { 42 displayName = utils.FuzzName() 43 } else { 44 displayName = utils.RandomName(cfg.NameLen, cfg.NameCharset) 45 } 46 name := utils.RandomName(cfg.NameLen, cfg.NameCharset) 47 48 channel := &model.Channel{ 49 TeamId: cfg.team.Id, 50 DisplayName: displayName, 51 Name: name, 52 Type: cfg.ChannelType, 53 CreatorId: cfg.userID, 54 } 55 56 channel, err := cfg.a.CreateChannel(c, channel, true) 57 if err != nil { 58 return nil, err 59 } 60 return channel, nil 61 } 62 63 func (cfg *AutoChannelCreator) CreateTestChannels(c *request.Context, num utils.Range) ([]*model.Channel, error) { 64 numChannels := utils.RandIntFromRange(num) 65 channels := make([]*model.Channel, numChannels) 66 67 for i := 0; i < numChannels; i++ { 68 var err error 69 channels[i], err = cfg.createRandomChannel(c) 70 if err != nil { 71 return nil, err 72 } 73 } 74 75 return channels, nil 76 }