move out new user declaration into db file

This commit is contained in:
Akulij 2025-03-27 20:53:06 +08:00
parent b770b2c5dc
commit 4c0d2ec3a3
2 changed files with 14 additions and 10 deletions

View File

@ -1,6 +1,7 @@
package main
import (
"log"
"errors"
"gorm.io/driver/sqlite"
@ -61,3 +62,14 @@ func (bc BotController) SetBotContent(Literal string, Content string) {
bc.db.Model(&c).Update("Content", Content)
}
func (bc BotController) GetUser(UserID int64) User {
var user User
bc.db.First(&user, "id", UserID)
if user == (User{}) {
log.Printf("New user: [%d]", UserID)
user = User{ID: UserID, State: "start"}
bc.db.Create(&user)
}
return user
}

View File

@ -42,14 +42,7 @@ func ProcessUpdate(bc BotController, update tgbotapi.Update) {
func handleMessage(bc BotController, update tgbotapi.Update) {
var UserID = update.Message.From.ID
var user User
bc.db.First(&user, "id", UserID)
if user == (User{}) {
log.Printf("New user: [%d]", UserID)
user = User{ID: UserID, State: "start"}
bc.db.Create(&user)
}
user := bc.GetUser(UserID)
bc.db.Model(&user).Update("MsgCounter", user.MsgCounter+1)
log.Printf("User[%d] messages: %d", user.ID, user.MsgCounter)
@ -77,8 +70,7 @@ func handleMessage(bc BotController, update tgbotapi.Update) {
}
func handleCallbackQuery(bc BotController, update tgbotapi.Update) {
var user User
bc.db.First(&user, "id", update.CallbackQuery.From.ID)
user := bc.GetUser(update.CallbackQuery.From.ID)
if update.CallbackQuery.Data == "leave_ticket_button" {
handleLeaveTicketButton(bc, update, user)