{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeOperators #-}
module Telegram.Bot.API.Methods.GetMyCommands 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
data GetMyCommandsRequest = GetMyCommandsRequest
{ GetMyCommandsRequest -> Maybe BotCommandScope
getMyCommandsScope :: Maybe BotCommandScope
, GetMyCommandsRequest -> Maybe Text
getMyCommandsLanguageCode :: Maybe Text
}
deriving (forall x. GetMyCommandsRequest -> Rep GetMyCommandsRequest x)
-> (forall x. Rep GetMyCommandsRequest x -> GetMyCommandsRequest)
-> Generic GetMyCommandsRequest
forall x. Rep GetMyCommandsRequest x -> GetMyCommandsRequest
forall x. GetMyCommandsRequest -> Rep GetMyCommandsRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. GetMyCommandsRequest -> Rep GetMyCommandsRequest x
from :: forall x. GetMyCommandsRequest -> Rep GetMyCommandsRequest x
$cto :: forall x. Rep GetMyCommandsRequest x -> GetMyCommandsRequest
to :: forall x. Rep GetMyCommandsRequest x -> GetMyCommandsRequest
Generic
instance ToJSON GetMyCommandsRequest where toJSON :: GetMyCommandsRequest -> Value
toJSON = GetMyCommandsRequest -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
instance FromJSON GetMyCommandsRequest where parseJSON :: Value -> Parser GetMyCommandsRequest
parseJSON = Value -> Parser GetMyCommandsRequest
forall a (d :: Meta) (f :: * -> *).
(Generic a, GFromJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
Value -> Parser a
gparseJSON
type GetMyCommands = "getMyCommands"
:> ReqBody '[JSON] GetMyCommandsRequest
:> Post '[JSON] (Response [BotCommand])
getMyCommands :: GetMyCommandsRequest -> ClientM (Response [BotCommand])
getMyCommands :: GetMyCommandsRequest -> ClientM (Response [BotCommand])
getMyCommands = Proxy GetMyCommands -> Client ClientM GetMyCommands
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @GetMyCommands)
makeDefault ''GetMyCommandsRequest