MyPackBot/internal/commands/cancel.go

49 lines
1.2 KiB
Go
Executable File

package commands
import (
"gitlab.com/toby3d/mypackbot/internal/bot"
"gitlab.com/toby3d/mypackbot/internal/db"
"gitlab.com/toby3d/mypackbot/internal/errors"
"gitlab.com/toby3d/mypackbot/internal/i18n"
"gitlab.com/toby3d/mypackbot/internal/models"
"gitlab.com/toby3d/mypackbot/internal/utils"
tg "gitlab.com/toby3d/telegram"
)
// Cancel just cancel current user operation
func Cancel(msg *tg.Message) {
T, err := i18n.SwitchTo(msg.From.LanguageCode)
errors.Check(err)
state, err := db.DB.GetUserState(msg.From)
errors.Check(err)
_, err = bot.Bot.SendChatAction(msg.Chat.ID, tg.ActionTyping)
errors.Check(err)
var text string
switch state {
case models.StateAddSticker:
text = T("cancel_add_sticker")
case models.StateAddPack:
text = T("cancel_add_pack")
case models.StateDeleteSticker:
text = T("cancel_del_sticker")
case models.StateDeletePack:
text = T("cancel_del_pack")
case models.StateReset:
text = T("cancel_reset")
default:
text = T("cancel_error")
}
err = db.DB.ChangeUserState(msg.From, models.StateNone)
errors.Check(err)
reply := tg.NewMessage(msg.Chat.ID, text)
reply.ReplyMarkup = utils.MenuKeyboard(T)
_, err = bot.Bot.SendMessage(reply)
errors.Check(err)
}