github.com/masterhung0112/hk_server/v5@v5.0.0-20220302090640-ec71aef15e1c/cmd/hkserver/commands/channelargs.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package commands 5 6 import ( 7 "fmt" 8 "strings" 9 10 "github.com/masterhung0112/hk_server/v5/app" 11 "github.com/masterhung0112/hk_server/v5/model" 12 ) 13 14 const ChannelArgSeparator = ":" 15 16 func getChannelsFromChannelArgs(a *app.App, channelArgs []string) []*model.Channel { 17 channels := make([]*model.Channel, 0, len(channelArgs)) 18 for _, channelArg := range channelArgs { 19 channel := getChannelFromChannelArg(a, channelArg) 20 channels = append(channels, channel) 21 } 22 return channels 23 } 24 25 func parseChannelArg(channelArg string) (string, string) { 26 result := strings.SplitN(channelArg, ChannelArgSeparator, 2) 27 if len(result) == 1 { 28 return "", channelArg 29 } 30 return result[0], result[1] 31 } 32 33 func getChannelFromChannelArg(a *app.App, channelArg string) *model.Channel { 34 teamArg, channelPart := parseChannelArg(channelArg) 35 if teamArg == "" && channelPart == "" { 36 return nil 37 } 38 39 var channel *model.Channel 40 if teamArg != "" { 41 team := getTeamFromTeamArg(a, teamArg) 42 if team == nil { 43 return nil 44 } 45 46 if result, err := a.Srv().Store.Channel().GetByNameIncludeDeleted(team.Id, channelPart, true); err == nil { 47 channel = result 48 } else { 49 fmt.Println(err.Error()) 50 } 51 } 52 53 if channel == nil { 54 if ch, errCh := a.Srv().Store.Channel().Get(channelPart, true); errCh == nil { 55 channel = ch 56 } 57 } 58 59 return channel 60 }