{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeOperators #-}
module Telegram.Bot.API.WebApps where
import Data.Text (Text)
import Data.Proxy
import GHC.Generics (Generic)
import Servant.API
import Servant.Client hiding (Response)
import Telegram.Bot.API.Internal.Utils (deriveJSON')
import Telegram.Bot.API.MakingRequests (Response)
import Telegram.Bot.API.Types.Common (InlineMessageId)
import Telegram.Bot.API.InlineMode.InlineQueryResult (InlineQueryResult)
import Telegram.Bot.API.Internal.TH (makeDefault)
data AnswerWebAppQueryRequest = AnswerWebAppQueryRequest
{ AnswerWebAppQueryRequest -> Text
answerWebAppQueryWebAppQueryId :: Text
, AnswerWebAppQueryRequest -> InlineQueryResult
answerWebAppQueryResult :: InlineQueryResult
}
deriving ((forall x.
AnswerWebAppQueryRequest -> Rep AnswerWebAppQueryRequest x)
-> (forall x.
Rep AnswerWebAppQueryRequest x -> AnswerWebAppQueryRequest)
-> Generic AnswerWebAppQueryRequest
forall x.
Rep AnswerWebAppQueryRequest x -> AnswerWebAppQueryRequest
forall x.
AnswerWebAppQueryRequest -> Rep AnswerWebAppQueryRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
AnswerWebAppQueryRequest -> Rep AnswerWebAppQueryRequest x
from :: forall x.
AnswerWebAppQueryRequest -> Rep AnswerWebAppQueryRequest x
$cto :: forall x.
Rep AnswerWebAppQueryRequest x -> AnswerWebAppQueryRequest
to :: forall x.
Rep AnswerWebAppQueryRequest x -> AnswerWebAppQueryRequest
Generic, Int -> AnswerWebAppQueryRequest -> ShowS
[AnswerWebAppQueryRequest] -> ShowS
AnswerWebAppQueryRequest -> String
(Int -> AnswerWebAppQueryRequest -> ShowS)
-> (AnswerWebAppQueryRequest -> String)
-> ([AnswerWebAppQueryRequest] -> ShowS)
-> Show AnswerWebAppQueryRequest
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AnswerWebAppQueryRequest -> ShowS
showsPrec :: Int -> AnswerWebAppQueryRequest -> ShowS
$cshow :: AnswerWebAppQueryRequest -> String
show :: AnswerWebAppQueryRequest -> String
$cshowList :: [AnswerWebAppQueryRequest] -> ShowS
showList :: [AnswerWebAppQueryRequest] -> ShowS
Show)
newtype SentWebAppMessage = SentWebAppMessage
{ SentWebAppMessage -> Maybe InlineMessageId
sentWebAppMessageInlineMessageId :: Maybe InlineMessageId
}
deriving ((forall x. SentWebAppMessage -> Rep SentWebAppMessage x)
-> (forall x. Rep SentWebAppMessage x -> SentWebAppMessage)
-> Generic SentWebAppMessage
forall x. Rep SentWebAppMessage x -> SentWebAppMessage
forall x. SentWebAppMessage -> Rep SentWebAppMessage x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SentWebAppMessage -> Rep SentWebAppMessage x
from :: forall x. SentWebAppMessage -> Rep SentWebAppMessage x
$cto :: forall x. Rep SentWebAppMessage x -> SentWebAppMessage
to :: forall x. Rep SentWebAppMessage x -> SentWebAppMessage
Generic, Int -> SentWebAppMessage -> ShowS
[SentWebAppMessage] -> ShowS
SentWebAppMessage -> String
(Int -> SentWebAppMessage -> ShowS)
-> (SentWebAppMessage -> String)
-> ([SentWebAppMessage] -> ShowS)
-> Show SentWebAppMessage
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SentWebAppMessage -> ShowS
showsPrec :: Int -> SentWebAppMessage -> ShowS
$cshow :: SentWebAppMessage -> String
show :: SentWebAppMessage -> String
$cshowList :: [SentWebAppMessage] -> ShowS
showList :: [SentWebAppMessage] -> ShowS
Show)
foldMap deriveJSON'
[ ''SentWebAppMessage
, ''AnswerWebAppQueryRequest
]
type AnswerWebAppQuery
= "answerWebAppQuery" :> ReqBody '[JSON] AnswerWebAppQueryRequest :> Post '[JSON] (Response SentWebAppMessage)
answerWebAppQuery :: AnswerWebAppQueryRequest -> ClientM (Response SentWebAppMessage)
answerWebAppQuery :: AnswerWebAppQueryRequest -> ClientM (Response SentWebAppMessage)
answerWebAppQuery = Proxy AnswerWebAppQuery -> Client ClientM AnswerWebAppQuery
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @AnswerWebAppQuery)
foldMap makeDefault
[ ''SentWebAppMessage
, ''AnswerWebAppQueryRequest
]