func joinCommand(c *Context, command *model.Command) bool { // looks for "/join channel-name" cmd := "/join" if strings.Index(command.Command, cmd) == 0 { parts := strings.Split(command.Command, " ") startsWith := "" if len(parts) == 2 { startsWith = parts[1] } if result := <-Srv.Store.Channel().GetMoreChannels(c.Session.TeamId, c.Session.UserId); result.Err != nil { c.Err = result.Err return false } else { channels := result.Data.(*model.ChannelList) for _, v := range channels.Channels { if v.Name == startsWith && !command.Suggest { if v.Type == model.CHANNEL_DIRECT { return false } JoinChannel(c, v.Id, "") if c.Err != nil { return false } command.GotoLocation = c.GetTeamURL() + "/channels/" + v.Name command.Response = model.RESP_EXECUTED return true } if len(startsWith) == 0 || strings.Index(v.Name, startsWith) == 0 { command.AddSuggestion(&model.SuggestCommand{Suggestion: cmd + " " + v.Name, Description: "Join the open channel"}) } } } } else if strings.Index(cmd, command.Command) == 0 { command.AddSuggestion(&model.SuggestCommand{Suggestion: cmd, Description: "Join an open channel"}) } return false }
func logoutCommand(c *Context, command *model.Command) bool { cmd := "/logout" if strings.Index(command.Command, cmd) == 0 { command.AddSuggestion(&model.SuggestCommand{Suggestion: cmd, Description: "Logout"}) if !command.Suggest { command.GotoLocation = "/logout" command.Response = model.RESP_EXECUTED return true } } else if strings.Index(cmd, command.Command) == 0 { command.AddSuggestion(&model.SuggestCommand{Suggestion: cmd, Description: "Logout"}) } return false }