telegram-bot-api-6.5.1: src/Telegram/Bot/API/Methods/AnswerCallbackQuery.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeOperators #-}
module Telegram.Bot.API.Methods.AnswerCallbackQuery where
import Data.Aeson (FromJSON (..), ToJSON (..))
import Data.Proxy
import Data.Text
import GHC.Generics (Generic)
import Servant.API
import Servant.Client hiding (Response)
import Telegram.Bot.API.Internal.Utils
import Telegram.Bot.API.Internal.TH
import Telegram.Bot.API.MakingRequests
import Telegram.Bot.API.Types
-- ** 'answerCallbackQuery'
-- | Request parameters for 'answerCallbackQuery'.
data AnswerCallbackQueryRequest = AnswerCallbackQueryRequest
{ answerCallbackQueryCallbackQueryId :: CallbackQueryId -- ^ Unique identifier for the query to be answered
, answerCallbackQueryText :: Maybe Text -- ^ Text of the notification. If not specified, nothing will be shown to the user, 0-200 characters
, answerCallbackQueryShowAlert :: Maybe Bool -- ^ If True, an alert will be shown by the client instead of a notification at the top of the chat screen. Defaults to false.
, answerCallbackQueryUrl :: Maybe Text
-- ^ URL that will be opened by the user's client. If you have created a Game and accepted the conditions via @Botfather, specify the URL that opens your game — note that this will only work if the query comes from a callback_game button.
--
-- Otherwise, you may use links like t.me/your_bot?start=XXXX that open your bot with a parameter.
, answerCallbackQueryCacheTime :: Maybe Integer -- ^ The maximum amount of time in seconds that the result of the callback query may be cached client-side. Telegram apps will support caching starting in version 3.14. Defaults to 0.
}
deriving Generic
instance ToJSON AnswerCallbackQueryRequest where toJSON = gtoJSON
instance FromJSON AnswerCallbackQueryRequest where parseJSON = gparseJSON
type AnswerCallbackQuery = "answerCallbackQuery"
:> ReqBody '[JSON] AnswerCallbackQueryRequest
:> Post '[JSON] (Response Bool)
-- | Use this method to send answers to callback
-- queries sent from inline keyboards. The answer
-- will be displayed to the user as a notification
-- at the top of the chat screen or as an alert.
-- On success, True is returned.
--
-- Alternatively, the user can be redirected to
-- the specified Game URL. For this option to work,
-- you must first create a game for your bot via
-- @Botfather and accept the terms. Otherwise, you
-- may use links like t.me/your_bot?start=XXXX that
-- open your bot with a parameter.
answerCallbackQuery :: AnswerCallbackQueryRequest -> ClientM (Response Bool)
answerCallbackQuery = client (Proxy @AnswerCallbackQuery)
makeDefault ''AnswerCallbackQueryRequest