53 lines
1.7 KiB
Go
53 lines
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)
|
|
}
|