Work on squads, alerts on new user with empty or spy profile
Closes #1 Closes #2
This commit is contained in:
@@ -84,6 +84,50 @@ func (g *Getters) GetAllPrivateChats() ([]dbmapping.Chat, bool) {
|
||||
return privateChats, true
|
||||
}
|
||||
|
||||
// GetAllGroupChats returns all group chats
|
||||
func (g *Getters) GetAllGroupChats() ([]dbmapping.Chat, bool) {
|
||||
groupChats := []dbmapping.Chat{}
|
||||
|
||||
err := c.Db.Select(&groupChats, "SELECT * FROM chats WHERE chat_type IN ('group', 'supergroup')")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return groupChats, false
|
||||
}
|
||||
|
||||
return groupChats, true
|
||||
}
|
||||
|
||||
// GetAllGroupChatsWithSquads returns all group chats with squads
|
||||
func (g *Getters) GetAllGroupChatsWithSquads() ([]dbmapping.SquadChat, bool) {
|
||||
chatsSquads := []dbmapping.SquadChat{}
|
||||
groupChats := []dbmapping.Chat{}
|
||||
|
||||
err := c.Db.Select(&groupChats, "SELECT * FROM chats WHERE chat_type IN ('group', 'supergroup')")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return chatsSquads, false
|
||||
}
|
||||
|
||||
for i := range groupChats {
|
||||
chatSquad := dbmapping.SquadChat{}
|
||||
squad := dbmapping.Squad{}
|
||||
err = c.Db.Select(&squad, c.Db.Rebind("SELECT * FROM squads WHERE chat_id="), groupChats[i].ID)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
chatSquad.IsSquad = false
|
||||
} else {
|
||||
chatSquad.IsSquad = true
|
||||
}
|
||||
|
||||
chatSquad.Squad = squad
|
||||
chatSquad.Chat = groupChats[i]
|
||||
|
||||
chatsSquads = append(chatsSquads, chatSquad)
|
||||
}
|
||||
|
||||
return chatsSquads, true
|
||||
}
|
||||
|
||||
// UpdateChatTitle updates chat title in database
|
||||
func (g *Getters) UpdateChatTitle(chatRaw dbmapping.Chat, newTitle string) (dbmapping.Chat, bool) {
|
||||
chatRaw.Name = newTitle
|
||||
|
@@ -19,6 +19,8 @@ type GettersInterface interface {
|
||||
GetOrCreateChat(update *tgbotapi.Update) (dbmapping.Chat, bool)
|
||||
GetChatByID(chatID int64) (dbmapping.Chat, bool)
|
||||
GetAllPrivateChats() ([]dbmapping.Chat, bool)
|
||||
GetAllGroupChats() ([]dbmapping.Chat, bool)
|
||||
GetAllGroupChatsWithSquads() ([]dbmapping.SquadChat, bool)
|
||||
UpdateChatTitle(chatRaw dbmapping.Chat, newTitle string) (dbmapping.Chat, bool)
|
||||
GetOrCreatePlayer(telegramID int) (dbmapping.Player, bool)
|
||||
GetPlayerByID(playerID int) (dbmapping.Player, bool)
|
||||
|
@@ -35,11 +35,10 @@ func (g *Getters) GetOrCreatePlayer(telegramID int) (dbmapping.Player, bool) {
|
||||
// Create "nobody" user
|
||||
playerRaw.TelegramID = telegramID
|
||||
playerRaw.LeagueID = 0
|
||||
playerRaw.SquadID = 0
|
||||
playerRaw.Status = "nobody"
|
||||
playerRaw.CreatedAt = time.Now().UTC()
|
||||
playerRaw.UpdatedAt = time.Now().UTC()
|
||||
_, err = c.Db.NamedExec("INSERT INTO players VALUES(NULL, :telegram_id, :league_id, :squad_id, :status, :created_at, :updated_at)", &playerRaw)
|
||||
_, err = c.Db.NamedExec("INSERT INTO players VALUES(NULL, :telegram_id, :league_id, :status, :created_at, :updated_at)", &playerRaw)
|
||||
if err != nil {
|
||||
log.Printf(err.Error())
|
||||
return playerRaw, false
|
||||
|
Reference in New Issue
Block a user