new telegram bot
This commit is contained in:
54
telegram_bot/screens/accept_workspace_invite.go
Normal file
54
telegram_bot/screens/accept_workspace_invite.go
Normal file
@@ -0,0 +1,54 @@
|
||||
package screens
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"example.com/m/bot"
|
||||
"github.com/NicoNex/echotron/v3"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
type AcceptWorkspaceInvite struct {
|
||||
InviteID string
|
||||
}
|
||||
|
||||
func (s *AcceptWorkspaceInvite) Enter(b *bot.Bot, mode bot.RenderMode) {
|
||||
// Получаем JWT токен
|
||||
jwt, err := b.Backend.GetJWTByTelegramID(context.Background(), b.ChatID)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("Failed to get JWT")
|
||||
b.SendNew("❌ Ошибка авторизации. Попробуйте /start", bot.Keyboard())
|
||||
return
|
||||
}
|
||||
|
||||
// Принимаем приглашение
|
||||
err = b.Backend.AcceptWorkspaceInvite(context.Background(), jwt, s.InviteID)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Str("invite_id", s.InviteID).Msg("Failed to accept workspace invite")
|
||||
b.SendNew("❌ Не удалось принять приглашение. Возможно, оно уже было использовано.", bot.Keyboard())
|
||||
return
|
||||
}
|
||||
|
||||
// Успешно принято
|
||||
text := "✅ Вы присоединились к рабочему пространству!\n\n" +
|
||||
"Администратор сможет выдать вам необходимые права в веб-интерфейсе."
|
||||
|
||||
b.SendNew(text, bot.Keyboard(
|
||||
bot.Row(bot.Button("🏠 Главное меню", "menu")),
|
||||
))
|
||||
}
|
||||
|
||||
func (s *AcceptWorkspaceInvite) HandleCallback(b *bot.Bot, u *echotron.Update) {
|
||||
if u.CallbackQuery == nil || u.CallbackQuery.Data == "" {
|
||||
return
|
||||
}
|
||||
|
||||
if u.CallbackQuery.Data == "menu" {
|
||||
b.SetState(&MainMenu{}, bot.EditMessage)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (s *AcceptWorkspaceInvite) HandleMessage(_ *bot.Bot, _ *echotron.Update) { return }
|
||||
|
||||
func (s *AcceptWorkspaceInvite) Handle(_ *bot.Bot, _ *echotron.Update) { return }
|
||||
Reference in New Issue
Block a user