Файли
2026-11-08 03:46:11 +00:00

53 рядки
1.7 KiB
Go

package list
import (
th "github.com/mymmrac/telego/telegohandler"
"git.entityseven.com/rilaxik/pllist/internal/service"
"git.entityseven.com/rilaxik/pllist/internal/telegram/item"
"git.entityseven.com/rilaxik/pllist/internal/telegram/shared"
)
type Handler struct {
sender *shared.Sender
lists *service.ListService
access *service.AccessService
pending *service.PendingStore
items *item.Handler
}
func New(
sender *shared.Sender,
lists *service.ListService,
access *service.AccessService,
pending *service.PendingStore,
items *item.Handler,
) *Handler {
return &Handler{
sender: sender,
lists: lists,
access: access,
pending: pending,
items: items,
}
}
func (h *Handler) Register(router *th.BotHandler, pendingRouter *shared.PendingRouter) {
router.HandleMessage(h.handleLists, th.CommandEqual("lists"))
router.HandleMessage(h.handleLists, th.TextEqual(shared.MyListsLabel))
router.HandleMessage(h.handleNew, th.CommandEqual("new"))
callbacks := router.Group(th.AnyCallbackQueryWithMessage())
callbacks.HandleCallbackQuery(h.listsCallback, th.CallbackDataEqual(shared.NavLists))
callbacks.HandleCallbackQuery(h.newCallback, th.CallbackDataEqual(shared.NavNew))
callbacks.HandleCallbackQuery(h.renameCallback,
th.CallbackDataPrefix(shared.CallbackPrefix(shared.ActionListRename)))
callbacks.HandleCallbackQuery(h.deleteCallback,
th.CallbackDataPrefix(shared.CallbackPrefix(shared.ActionListDelete)))
callbacks.HandleCallbackQuery(h.deleteYesCallback,
th.CallbackDataPrefix(shared.CallbackPrefix(shared.ActionListDeleteYes)))
pendingRouter.Register(service.PendingCreateList, h.createText)
pendingRouter.Register(service.PendingRenameList, h.renameText)
}