48 lines
1.3 KiB
Go
48 lines
1.3 KiB
Go
package screens
|
||
|
||
import (
|
||
"context"
|
||
|
||
"example.com/m/bot"
|
||
"github.com/NicoNex/echotron/v3"
|
||
)
|
||
|
||
type AcceptWorkspaceInvite struct {
|
||
InviteID string
|
||
}
|
||
|
||
const msgAcceptWorkspaceInviteSuccessfully = `
|
||
✅ Вы присоединились к рабочему пространству!
|
||
Администратор сможет выдать вам необходимые права в веб-интерфейсе.
|
||
`
|
||
|
||
func (s *AcceptWorkspaceInvite) Enter(b *bot.Bot, mode bot.RenderMode) {
|
||
jwt := b.Session.JWT
|
||
if jwt == "" {
|
||
b.SendNew("<b>❌ Ошибка авторизации</b>\n\nПопробуйте /start", emptyKeyboard)
|
||
return
|
||
}
|
||
|
||
err := b.Backend.AcceptWorkspaceInvite(context.Background(), jwt, s.InviteID)
|
||
if err != nil {
|
||
b.SendNew("❌ Не удалось принять приглашение. Возможно, оно уже было использовано.", emptyKeyboard)
|
||
return
|
||
}
|
||
|
||
kb := Keyboard(
|
||
Row(Button("Главное меню", "menu")),
|
||
)
|
||
|
||
b.SendNew(msgAcceptWorkspaceInviteSuccessfully, kb)
|
||
}
|
||
|
||
func (s *AcceptWorkspaceInvite) HandleCallback(b *bot.Bot, u *echotron.Update) {}
|
||
|
||
func (s *AcceptWorkspaceInvite) HandleMessage(_ *bot.Bot, _ *echotron.Update) {}
|
||
|
||
func (s *AcceptWorkspaceInvite) Handle(b *bot.Bot, _ *echotron.Update) {
|
||
b.SetState(&MainMenu{}, bot.EditMessage)
|
||
}
|
||
|
||
func (s *AcceptWorkspaceInvite) Exit() {}
|