{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Telegram.Bot.API.Methods.SetMyCommands 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.MakingRequests import Telegram.Bot.API.Types import Telegram.Bot.API.Internal.TH -- ** 'setMyCommands' -- | Request parameters for 'setMyCommands'. data SetMyCommandsRequest = SetMyCommandsRequest { setMyCommandsCommands :: [BotCommand] -- ^ A JSON-serialized list of bot commands to be set as the list of the bot's commands. At most 100 commands can be specified. , setMyCommandsScope :: Maybe BotCommandScope -- ^ A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault. , setMyCommandsLanguageCode :: Maybe Text -- ^ A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands } deriving Generic instance ToJSON SetMyCommandsRequest where toJSON = gtoJSON instance FromJSON SetMyCommandsRequest where parseJSON = gparseJSON type SetMyCommands = "setMyCommands" :> ReqBody '[JSON] SetMyCommandsRequest :> Post '[JSON] (Response Bool) -- | Use this method to change the list of -- the bot's commands. See -- for more details about bot commands. -- Returns True on success. setMyCommands :: SetMyCommandsRequest -> ClientM (Response Bool) setMyCommands = client (Proxy @SetMyCommands) makeDefault ''SetMyCommandsRequest