Files
2026-11-08 03:46:11 +00:00

43 lines
1.5 KiB
Go

package share
import (
th "github.com/mymmrac/telego/telegohandler"
"git.entityseven.com/rilaxik/pllist/internal/service"
"git.entityseven.com/rilaxik/pllist/internal/telegram/shared"
)
type Handler struct {
sender *shared.Sender
shares *service.ShareService
pending *service.PendingStore
}
func New(
sender *shared.Sender,
shares *service.ShareService,
pending *service.PendingStore,
) *Handler {
return &Handler{sender: sender, shares: shares, pending: pending}
}
func (h *Handler) Register(router *th.BotHandler, pendingRouter *shared.PendingRouter) {
callbacks := router.Group(th.AnyCallbackQueryWithMessage())
callbacks.HandleCallbackQuery(h.manageCallback,
th.CallbackDataPrefix(shared.CallbackPrefix(shared.ActionShareManage)))
callbacks.HandleCallbackQuery(h.addCallback,
th.CallbackDataPrefix(shared.CallbackPrefix(callbackAdd)))
callbacks.HandleCallbackQuery(h.roleCallback,
th.CallbackDataPrefix(shared.CallbackPrefix(callbackRole)))
callbacks.HandleCallbackQuery(h.viewCallback,
th.CallbackDataPrefix(shared.CallbackPrefix(callbackView)))
callbacks.HandleCallbackQuery(h.setRoleCallback,
th.CallbackDataPrefix(shared.CallbackPrefix(callbackSet)))
callbacks.HandleCallbackQuery(h.revokeCallback,
th.CallbackDataPrefix(shared.CallbackPrefix(callbackRevoke)))
callbacks.HandleCallbackQuery(h.revokeYesCallback,
th.CallbackDataPrefix(shared.CallbackPrefix(callbackRevokeYes)))
pendingRouter.Register(service.PendingShareTarget, h.targetText)
}