68 lines
1.7 KiB
Go
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
|
|
}
|