44 lines
1.3 KiB
Go
44 lines
1.3 KiB
Go
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,
|
|
})
|
|
}
|