{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeOperators #-}
module Telegram.Bot.API.Methods.CopyMessages 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.Types.ParseMode
import Telegram.Bot.API.Internal.TH
type CopyMessages
= "copyMessages"
:> ReqBody '[JSON] CopyMessagesRequest
:> Post '[JSON] (Response [CopyMessageId])
copyMessages :: CopyMessagesRequest -> ClientM (Response [CopyMessageId])
copyMessages :: CopyMessagesRequest -> ClientM (Response [CopyMessageId])
copyMessages = Proxy CopyMessages -> Client ClientM CopyMessages
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @CopyMessages)
data CopyMessagesRequest = CopyMessagesRequest
{ CopyMessagesRequest -> SomeChatId
copyMessagesChatId :: SomeChatId
, CopyMessagesRequest -> Maybe Message
copyMessagesMessageThreadId :: Maybe Message
, CopyMessagesRequest -> SomeChatId
copyMessagesFromChatId :: SomeChatId
, CopyMessagesRequest -> [MessageId]
copyMessagesMessageIds :: [MessageId]
, CopyMessagesRequest -> Maybe Text
copyMessagesCaption :: Maybe Text
, CopyMessagesRequest -> Maybe ParseMode
copyMessagesParseMode :: Maybe ParseMode
, CopyMessagesRequest -> Maybe [MessageEntity]
copyMessagesCaptionEntities :: Maybe [MessageEntity]
, CopyMessagesRequest -> Maybe Bool
copyMessagesDisableNotification :: Maybe Bool
, CopyMessagesRequest -> Maybe Bool
copyMessagesProtectContent :: Maybe Bool
, CopyMessagesRequest -> Maybe Bool
copyMessagesRemoveCaption :: Maybe Bool
}
deriving (forall x. CopyMessagesRequest -> Rep CopyMessagesRequest x)
-> (forall x. Rep CopyMessagesRequest x -> CopyMessagesRequest)
-> Generic CopyMessagesRequest
forall x. Rep CopyMessagesRequest x -> CopyMessagesRequest
forall x. CopyMessagesRequest -> Rep CopyMessagesRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. CopyMessagesRequest -> Rep CopyMessagesRequest x
from :: forall x. CopyMessagesRequest -> Rep CopyMessagesRequest x
$cto :: forall x. Rep CopyMessagesRequest x -> CopyMessagesRequest
to :: forall x. Rep CopyMessagesRequest x -> CopyMessagesRequest
Generic
instance ToJSON CopyMessagesRequest where toJSON :: CopyMessagesRequest -> Value
toJSON = CopyMessagesRequest -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
instance FromJSON CopyMessagesRequest where parseJSON :: Value -> Parser CopyMessagesRequest
parseJSON = Value -> Parser CopyMessagesRequest
forall a (d :: Meta) (f :: * -> *).
(Generic a, GFromJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
Value -> Parser a
gparseJSON
makeDefault ''CopyMessagesRequest