Files
tgex-backend/tg_bot/screens/login.go
2026-01-19 14:21:47 +03:00

53 lines
1.3 KiB
Go

package screens
import (
"context"
"fmt"
"github.com/NicoNex/echotron/v3"
"github.com/TelegramExchange/tgex-backend/tg_bot/bot"
"github.com/rs/zerolog/log"
)
type Login struct{}
const msgHelloLogin = `
Привет, %s!
Нажми кнопку для входа на сайт. 👇
`
func (s *Login) Enter(b *bot.Bot, mode bot.RenderMode) {
token, err := b.Backend.CreateLoginToken(context.Background(), b.ChatID)
if err != nil {
b.SendNew("❌ Произошла ошибка при создании токена входа. Попробуйте позже.", emptyKeyboard)
return
}
loginURL := b.Backend.LoginURL(token)
usernameDisplay := "аноним"
if b.Session.FirstName != "" {
usernameDisplay = b.Session.FirstName
}
kb := Keyboard(Row(URLButton("Войти на сайт", loginURL)))
_, err = b.SendMessage(fmt.Sprintf(msgHelloLogin, usernameDisplay), b.ChatID, &echotron.MessageOptions{
ReplyMarkup: kb,
ParseMode: echotron.HTML,
})
if err != nil {
log.Err(err)
return
}
b.SetState(&MainMenu{}, bot.NewMessage)
}
func (s *Login) HandleCallback(b *bot.Bot, u *echotron.Update) {}
func (s *Login) HandleMessage(b *bot.Bot, u *echotron.Update) {}
func (s *Login) Handle(b *bot.Bot, u *echotron.Update) {}
func (s *Login) Exit() {}