68 lines
1.7 KiB
Go

package wizard
import (
"gitea.neur0tx.site/Neur0toxine/vegapokerbot/internal/db/model"
"gitea.neur0tx.site/Neur0toxine/vegapokerbot/internal/handler/iface"
"github.com/mymmrac/telego"
tu "github.com/mymmrac/telego/telegoutil"
)
type Register struct {
iface.Base
}
func NewRegister(app iface.App, userID, chatID int64) *Register {
return &Register{iface.NewBase(app, userID, chatID)}
}
func (h *Register) Handle(wh telego.Update) error {
loc := h.Localizer(wh.Message.From.LanguageCode)
userRepo := h.App.DB().ForUser()
user, err := userRepo.ByTelegramID(wh.Message.From.ID)
if err != nil {
return err
}
if user != nil && user.ID > 0 {
var shouldUpdate bool
if user.ChatID != wh.Message.Chat.ID {
user.ChatID = wh.Message.Chat.ID
shouldUpdate = true
}
if user.Language != wh.Message.From.LanguageCode {
user.Language = wh.Message.From.LanguageCode
shouldUpdate = true
}
if shouldUpdate {
_ = userRepo.Save(user)
}
_, err := h.App.TG().SendMessage(&telego.SendMessageParams{
ChatID: tu.ID(wh.Message.Chat.ID),
Text: loc.Message("welcome"),
ParseMode: telego.ModeMarkdown,
})
return err
}
err = userRepo.Save(&model.User{
TelegramID: wh.Message.From.ID,
ChatID: wh.Message.Chat.ID,
Language: wh.Message.From.LanguageCode,
})
if err != nil {
_, _ = h.App.TG().SendMessage(&telego.SendMessageParams{
ChatID: tu.ID(wh.Message.Chat.ID),
Text: loc.Message("internal_error"),
ParseMode: telego.ModeMarkdown,
})
return err
}
_, err = h.App.TG().SendMessage(&telego.SendMessageParams{
ChatID: tu.ID(wh.Message.Chat.ID),
Text: loc.Message("welcome"),
ParseMode: telego.ModeMarkdown,
})
return err
}