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

59 рядки
2.0 KiB
Go

package list
import (
"github.com/mymmrac/telego"
th "github.com/mymmrac/telego/telegohandler"
"git.entityseven.com/rilaxik/pllist/internal/domain"
"git.entityseven.com/rilaxik/pllist/internal/service"
"git.entityseven.com/rilaxik/pllist/internal/telegram/shared"
)
func (h *Handler) listsCallback(ctx *th.Context, query telego.CallbackQuery) error {
return h.showLists(ctx, shared.UserFrom(ctx).ID,
shared.QueryChatID(query), shared.QueryMessageID(query))
}
func (h *Handler) newCallback(ctx *th.Context, query telego.CallbackQuery) error {
return h.startCreateList(ctx, shared.QueryChatID(query), shared.UserFrom(ctx).TelegramID)
}
func (h *Handler) renameCallback(ctx *th.Context, query telego.CallbackQuery) error {
listID, err := shared.CallbackID(query.Data, shared.ActionListRename)
if err != nil {
return err
}
if _, err := h.access.Authorize(ctx, shared.UserFrom(ctx).ID, listID, domain.ActionEditListMeta); err != nil {
return err
}
h.pending.Set(shared.UserFrom(ctx).TelegramID, service.Pending{
Action: service.PendingRenameList,
ListID: listID,
})
return h.sender.Send(ctx, shared.QueryChatID(query), renameTitlePrompt, nil)
}
func (h *Handler) deleteCallback(ctx *th.Context, query telego.CallbackQuery) error {
listID, err := shared.CallbackID(query.Data, shared.ActionListDelete)
if err != nil {
return err
}
if _, err := h.access.Authorize(ctx, shared.UserFrom(ctx).ID, listID, domain.ActionDeleteList); err != nil {
return err
}
return h.sender.EditOrSend(ctx, shared.QueryChatID(query), shared.QueryMessageID(query),
deleteText, deleteKeyboard(listID))
}
func (h *Handler) deleteYesCallback(ctx *th.Context, query telego.CallbackQuery) error {
listID, err := shared.CallbackID(query.Data, shared.ActionListDeleteYes)
if err != nil {
return err
}
if err := h.lists.Delete(ctx, shared.UserFrom(ctx).ID, listID); err != nil {
return err
}
return h.showLists(ctx, shared.UserFrom(ctx).ID,
shared.QueryChatID(query), shared.QueryMessageID(query))
}