{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeOperators #-}
module Telegram.Bot.API.Methods.CreateChatInviteLink 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 CreateChatInviteLinkRequest = CreateChatInviteLinkRequest
{ CreateChatInviteLinkRequest -> SomeChatId
createChatInviteLinkChatId :: SomeChatId
, CreateChatInviteLinkRequest -> Maybe Text
createChatInviteLinkName :: Maybe Text
, CreateChatInviteLinkRequest -> Maybe Integer
createChatInviteLinkExpireDate :: Maybe Integer
, CreateChatInviteLinkRequest -> Maybe Int
createChatInviteLinkMemberLimit :: Maybe Int
, CreateChatInviteLinkRequest -> Maybe Bool
createChatInviteLinkCreatesJoinRequest :: Maybe Bool
}
deriving (forall x.
CreateChatInviteLinkRequest -> Rep CreateChatInviteLinkRequest x)
-> (forall x.
Rep CreateChatInviteLinkRequest x -> CreateChatInviteLinkRequest)
-> Generic CreateChatInviteLinkRequest
forall x.
Rep CreateChatInviteLinkRequest x -> CreateChatInviteLinkRequest
forall x.
CreateChatInviteLinkRequest -> Rep CreateChatInviteLinkRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
CreateChatInviteLinkRequest -> Rep CreateChatInviteLinkRequest x
from :: forall x.
CreateChatInviteLinkRequest -> Rep CreateChatInviteLinkRequest x
$cto :: forall x.
Rep CreateChatInviteLinkRequest x -> CreateChatInviteLinkRequest
to :: forall x.
Rep CreateChatInviteLinkRequest x -> CreateChatInviteLinkRequest
Generic
instance ToJSON CreateChatInviteLinkRequest where toJSON :: CreateChatInviteLinkRequest -> Value
toJSON = CreateChatInviteLinkRequest -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
instance FromJSON CreateChatInviteLinkRequest where parseJSON :: Value -> Parser CreateChatInviteLinkRequest
parseJSON = Value -> Parser CreateChatInviteLinkRequest
forall a (d :: Meta) (f :: * -> *).
(Generic a, GFromJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
Value -> Parser a
gparseJSON
type CreateChatInviteLink = "createChatInviteLink"
:> ReqBody '[JSON] CreateChatInviteLinkRequest
:> Post '[JSON] (Response ChatInviteLink)
createChatInviteLink :: CreateChatInviteLinkRequest -> ClientM (Response ChatInviteLink)
createChatInviteLink :: CreateChatInviteLinkRequest -> ClientM (Response ChatInviteLink)
createChatInviteLink = Proxy CreateChatInviteLink -> Client ClientM CreateChatInviteLink
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @CreateChatInviteLink)
makeDefault ''CreateChatInviteLinkRequest