{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeOperators #-}
module Telegram.Bot.API.Methods.SendDice 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 SendDiceRequest = SendDiceRequest
{ SendDiceRequest -> Maybe BusinessConnectionId
sendDiceBusinessConnectionId :: Maybe BusinessConnectionId
, SendDiceRequest -> SomeChatId
sendDiceChatId :: SomeChatId
, SendDiceRequest -> Maybe MessageThreadId
sendDiceMessageThreadId :: Maybe MessageThreadId
, SendDiceRequest -> Maybe Text
sendDiceEmoji :: Maybe Text
, SendDiceRequest -> Maybe Bool
sendDiceDisableNotification :: Maybe Bool
, SendDiceRequest -> Maybe Bool
sendDiceProtectContent :: Maybe Bool
, SendDiceRequest -> Maybe MessageId
sendDiceReplyToMessageId :: Maybe MessageId
, SendDiceRequest -> Maybe ReplyParameters
sendDiceReplyParameters :: Maybe ReplyParameters
, SendDiceRequest -> Maybe InlineKeyboardMarkup
sendDiceReplyMarkup :: Maybe InlineKeyboardMarkup
}
deriving (forall x. SendDiceRequest -> Rep SendDiceRequest x)
-> (forall x. Rep SendDiceRequest x -> SendDiceRequest)
-> Generic SendDiceRequest
forall x. Rep SendDiceRequest x -> SendDiceRequest
forall x. SendDiceRequest -> Rep SendDiceRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SendDiceRequest -> Rep SendDiceRequest x
from :: forall x. SendDiceRequest -> Rep SendDiceRequest x
$cto :: forall x. Rep SendDiceRequest x -> SendDiceRequest
to :: forall x. Rep SendDiceRequest x -> SendDiceRequest
Generic
instance ToJSON SendDiceRequest where toJSON :: SendDiceRequest -> Value
toJSON = SendDiceRequest -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
instance FromJSON SendDiceRequest where parseJSON :: Value -> Parser SendDiceRequest
parseJSON = Value -> Parser SendDiceRequest
forall a (d :: Meta) (f :: * -> *).
(Generic a, GFromJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
Value -> Parser a
gparseJSON
type SendDice = "sendDice"
:> ReqBody '[JSON] SendDiceRequest
:> Post '[JSON] (Response Message)
sendDice :: SendDiceRequest -> ClientM (Response Message)
sendDice :: SendDiceRequest -> ClientM (Response Message)
sendDice = Proxy SendDice -> Client ClientM SendDice
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @SendDice)
makeDefault ''SendDiceRequest