github.com/coincircle/mattermost-server@v4.8.1-0.20180321182714-9d701c704416+incompatible/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/model"
     8  	"github.com/mattermost/mattermost-server/utils"
     9  )
    10  
    11  type AutoChannelCreator struct {
    12  	client             *model.Client
    13  	team               *model.Team
    14  	Fuzzy              bool
    15  	DisplayNameLen     utils.Range
    16  	DisplayNameCharset string
    17  	NameLen            utils.Range
    18  	NameCharset        string
    19  	ChannelType        string
    20  }
    21  
    22  func NewAutoChannelCreator(client *model.Client, team *model.Team) *AutoChannelCreator {
    23  	return &AutoChannelCreator{
    24  		client:             client,
    25  		team:               team,
    26  		Fuzzy:              false,
    27  		DisplayNameLen:     CHANNEL_DISPLAY_NAME_LEN,
    28  		DisplayNameCharset: utils.ALPHANUMERIC,
    29  		NameLen:            CHANNEL_NAME_LEN,
    30  		NameCharset:        utils.LOWERCASE,
    31  		ChannelType:        CHANNEL_TYPE,
    32  	}
    33  }
    34  
    35  func (cfg *AutoChannelCreator) createRandomChannel() (*model.Channel, bool) {
    36  	var displayName string
    37  	if cfg.Fuzzy {
    38  		displayName = utils.FuzzName()
    39  	} else {
    40  		displayName = utils.RandomName(cfg.NameLen, cfg.NameCharset)
    41  	}
    42  	name := utils.RandomName(cfg.NameLen, cfg.NameCharset)
    43  
    44  	channel := &model.Channel{
    45  		TeamId:      cfg.team.Id,
    46  		DisplayName: displayName,
    47  		Name:        name,
    48  		Type:        cfg.ChannelType}
    49  
    50  	println(cfg.client.GetTeamRoute())
    51  	result, err := cfg.client.CreateChannel(channel)
    52  	if err != nil {
    53  		println(err.Error())
    54  		println(err.DetailedError)
    55  		return nil, false
    56  	}
    57  	return result.Data.(*model.Channel), true
    58  }
    59  
    60  func (cfg *AutoChannelCreator) CreateTestChannels(num utils.Range) ([]*model.Channel, bool) {
    61  	numChannels := utils.RandIntFromRange(num)
    62  	channels := make([]*model.Channel, numChannels)
    63  
    64  	for i := 0; i < numChannels; i++ {
    65  		var err bool
    66  		channels[i], err = cfg.createRandomChannel()
    67  		if !err {
    68  			return channels, false
    69  		}
    70  	}
    71  
    72  	return channels, true
    73  }