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  }