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) }