{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Telegram.Bot.API.Methods.SendChatAction where import Data.Proxy import Data.Text (Text) import Servant.API import Servant.Client hiding (Response) import Telegram.Bot.API.MakingRequests import Telegram.Bot.API.Types type SendChatAction = "sendChatAction" :> RequiredQueryParam "chat_id" SomeChatId :> QueryParam "message_thread_id" MessageThreadId :> RequiredQueryParam "action" Text :> Post '[JSON] (Response Bool) -- | Use this method when you need to tell the -- user that something is happening on the bot's side. -- The status is set for 5 seconds or less -- (when a message arrives from your bot, Telegram -- clients clear its typing status). -- Returns True on success. -- -- Example: The ImageBot needs some time to -- process a request and upload the image. -- Instead of sending a text message along -- the lines of “Retrieving image, please wait…”, -- the bot may use sendChatAction with action = upload_photo. -- The user will see a “sending photo” status for the bot. -- -- We only recommend using this method when a -- response from the bot will take a noticeable -- amount of time to arrive. sendChatAction :: SomeChatId -- ^ Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername). -> Maybe MessageThreadId -- ^ Unique identifier for the target message thread; supergroups only. -> Text -- ^ Type of action to broadcast. Choose one, depending on what the user is about to receive: typing for text messages, upload_photo for photos, record_video or upload_video for videos, record_voice or upload_voice for voice notes, upload_document for general files, choose_sticker for stickers, find_location for location data, record_video_note or upload_video_note for video notes. -> ClientM (Response Bool) sendChatAction = client (Proxy @SendChatAction)