package queries import ( "context" "log/slog" "time" "git.maximotejeda.com/maximo/telegram-base-bot/internal/application/middlewares" "github.com/go-telegram/bot" "github.com/go-telegram/bot/models" ) // RegisterQueries func RegisterQueries(ctx context.Context, log *slog.Logger, b *bot.Bot){ b.RegisterHandler(bot.HandlerTypeCallbackQueryData, "button",bot.MatchTypeContains, HandleQuery, middlewares.LogMessage, middlewares.SingleFlight) b.RegisterHandler(bot.HandlerTypeCallbackQueryData, "operation=cancel",bot.MatchTypeContains, deleteQuery, middlewares.LogMessage, middlewares.SingleFlight) } // HandleQuery // Example of handle query func HandleQuery(ctx context.Context, b *bot.Bot, update *models.Update){ // Simulate work time.Sleep(2*time.Second) // send a response b.SendMessage(ctx, &bot.SendMessageParams{ ChatID: update.CallbackQuery.From.ID, // seems that query can come only fron one source USER Text: "handling query " + update.CallbackQuery.Data, }) } // deleteQuery // Delete message sending the query func deleteQuery(ctx context.Context, b *bot.Bot, update *models.Update){ //Message to delete mtd := update.CallbackQuery.Message.Message.ID // Chat where message come from cwmcf := update.CallbackQuery.From.ID b.DeleteMessage(ctx, &bot.DeleteMessageParams{ ChatID: cwmcf, MessageID: mtd, }) }