{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE LambdaCase #-}
module Telegram.Bot.API.Forum where
import Data.Aeson (ToJSON (..))
import Data.Proxy
import Data.Text (Text)
import GHC.Generics (Generic)
import Servant.API
import Servant.Client hiding (Response)
import Telegram.Bot.API.Internal.Utils
import Telegram.Bot.API.MakingRequests (Response)
import Telegram.Bot.API.Types
type GetForumTopicIconStickers
= "getForumTopicIconStickers"
:> Post '[JSON] (Response [Sticker])
getForumTopicIconStickers :: ClientM (Response [Sticker])
getForumTopicIconStickers :: ClientM (Response [Sticker])
getForumTopicIconStickers = Proxy GetForumTopicIconStickers
-> Client ClientM GetForumTopicIconStickers
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (Proxy GetForumTopicIconStickers
forall k (t :: k). Proxy t
Proxy @GetForumTopicIconStickers)
data CreateForumTopicRequest = CreateForumTopicRequest
{ CreateForumTopicRequest -> SomeChatId
createForumTopicRequestChatId :: SomeChatId
, CreateForumTopicRequest -> Text
createForumTopicRequestName :: Text
, CreateForumTopicRequest -> Maybe Integer
createForumTopicRequestIconColor :: Maybe Integer
, CreateForumTopicRequest -> Maybe Text
createForumTopicRequestIconCustomEmojiId :: Maybe Text
}
deriving (forall x.
CreateForumTopicRequest -> Rep CreateForumTopicRequest x)
-> (forall x.
Rep CreateForumTopicRequest x -> CreateForumTopicRequest)
-> Generic CreateForumTopicRequest
forall x. Rep CreateForumTopicRequest x -> CreateForumTopicRequest
forall x. CreateForumTopicRequest -> Rep CreateForumTopicRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateForumTopicRequest x -> CreateForumTopicRequest
$cfrom :: forall x. CreateForumTopicRequest -> Rep CreateForumTopicRequest x
Generic
instance ToJSON CreateForumTopicRequest where toJSON :: CreateForumTopicRequest -> Value
toJSON = CreateForumTopicRequest -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
type CreateForumTopic
= "createForumTopic"
:> ReqBody '[JSON] CreateForumTopicRequest
:> Post '[JSON] (Response ForumTopic)
createForumTopic :: CreateForumTopicRequest -> ClientM (Response ForumTopic)
createForumTopic :: CreateForumTopicRequest -> ClientM (Response ForumTopic)
createForumTopic = Proxy CreateForumTopic -> Client ClientM CreateForumTopic
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (Proxy CreateForumTopic
forall k (t :: k). Proxy t
Proxy @CreateForumTopic)
data EditForumTopicRequest = EditForumTopicRequest
{ EditForumTopicRequest -> SomeChatId
editForumTopicChatId :: SomeChatId
, EditForumTopicRequest -> MessageThreadId
editForumTopicMessageThreadId :: MessageThreadId
, EditForumTopicRequest -> Maybe Text
editForumTopicName :: Maybe Text
, EditForumTopicRequest -> Maybe Text
editForumTopicIconCustomEmojiId :: Maybe Text
}
deriving (forall x. EditForumTopicRequest -> Rep EditForumTopicRequest x)
-> (forall x. Rep EditForumTopicRequest x -> EditForumTopicRequest)
-> Generic EditForumTopicRequest
forall x. Rep EditForumTopicRequest x -> EditForumTopicRequest
forall x. EditForumTopicRequest -> Rep EditForumTopicRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep EditForumTopicRequest x -> EditForumTopicRequest
$cfrom :: forall x. EditForumTopicRequest -> Rep EditForumTopicRequest x
Generic
instance ToJSON EditForumTopicRequest where toJSON :: EditForumTopicRequest -> Value
toJSON = EditForumTopicRequest -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
type EditForumTopic
= "editForumTopic"
:> ReqBody '[JSON] EditForumTopicRequest
:> Post '[JSON] (Response Bool)
editForumTopic :: EditForumTopicRequest -> ClientM (Response Bool)
editForumTopic :: EditForumTopicRequest -> ClientM (Response Bool)
editForumTopic = Proxy EditForumTopic -> Client ClientM EditForumTopic
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (Proxy EditForumTopic
forall k (t :: k). Proxy t
Proxy @EditForumTopic)
data CloseForumTopicRequest = CloseForumTopicRequest
{ CloseForumTopicRequest -> SomeChatId
closeForumTopicRequestChatId :: SomeChatId
, CloseForumTopicRequest -> MessageThreadId
closeForumTopicRequestMessageThreadId :: MessageThreadId
}
deriving (forall x. CloseForumTopicRequest -> Rep CloseForumTopicRequest x)
-> (forall x.
Rep CloseForumTopicRequest x -> CloseForumTopicRequest)
-> Generic CloseForumTopicRequest
forall x. Rep CloseForumTopicRequest x -> CloseForumTopicRequest
forall x. CloseForumTopicRequest -> Rep CloseForumTopicRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CloseForumTopicRequest x -> CloseForumTopicRequest
$cfrom :: forall x. CloseForumTopicRequest -> Rep CloseForumTopicRequest x
Generic
instance ToJSON CloseForumTopicRequest where toJSON :: CloseForumTopicRequest -> Value
toJSON = CloseForumTopicRequest -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
type CloseForumTopic
= "closeForumTopic"
:> ReqBody '[JSON] CloseForumTopicRequest
:> Post '[JSON] (Response Bool)
closeForumTopic :: CloseForumTopicRequest -> ClientM (Response Bool)
closeForumTopic :: CloseForumTopicRequest -> ClientM (Response Bool)
closeForumTopic = Proxy CloseForumTopic -> Client ClientM CloseForumTopic
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (Proxy CloseForumTopic
forall k (t :: k). Proxy t
Proxy @CloseForumTopic)
data ReopenForumTopicRequest = ReopenForumTopicRequest
{ ReopenForumTopicRequest -> SomeChatId
reopenForumTopicRequestChatId :: SomeChatId
, ReopenForumTopicRequest -> MessageThreadId
reopenForumTopicRequestMessageThreadId :: MessageThreadId
}
deriving (forall x.
ReopenForumTopicRequest -> Rep ReopenForumTopicRequest x)
-> (forall x.
Rep ReopenForumTopicRequest x -> ReopenForumTopicRequest)
-> Generic ReopenForumTopicRequest
forall x. Rep ReopenForumTopicRequest x -> ReopenForumTopicRequest
forall x. ReopenForumTopicRequest -> Rep ReopenForumTopicRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ReopenForumTopicRequest x -> ReopenForumTopicRequest
$cfrom :: forall x. ReopenForumTopicRequest -> Rep ReopenForumTopicRequest x
Generic
instance ToJSON ReopenForumTopicRequest where toJSON :: ReopenForumTopicRequest -> Value
toJSON = ReopenForumTopicRequest -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
type ReopenForumTopic
= "reopenForumTopic"
:> ReqBody '[JSON] ReopenForumTopicRequest
:> Post '[JSON] (Response Bool)
reopenForumTopic :: ReopenForumTopicRequest -> ClientM (Response Bool)
reopenForumTopic :: ReopenForumTopicRequest -> ClientM (Response Bool)
reopenForumTopic = Proxy ReopenForumTopic -> Client ClientM ReopenForumTopic
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (Proxy ReopenForumTopic
forall k (t :: k). Proxy t
Proxy @ReopenForumTopic)
data DeleteForumTopicRequest = DeleteForumTopicRequest
{ DeleteForumTopicRequest -> SomeChatId
deleteForumTopicRequestChatId :: SomeChatId
, DeleteForumTopicRequest -> MessageThreadId
deleteForumTopicRequestMessageThreadId :: MessageThreadId
}
deriving (forall x.
DeleteForumTopicRequest -> Rep DeleteForumTopicRequest x)
-> (forall x.
Rep DeleteForumTopicRequest x -> DeleteForumTopicRequest)
-> Generic DeleteForumTopicRequest
forall x. Rep DeleteForumTopicRequest x -> DeleteForumTopicRequest
forall x. DeleteForumTopicRequest -> Rep DeleteForumTopicRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeleteForumTopicRequest x -> DeleteForumTopicRequest
$cfrom :: forall x. DeleteForumTopicRequest -> Rep DeleteForumTopicRequest x
Generic
instance ToJSON DeleteForumTopicRequest where toJSON :: DeleteForumTopicRequest -> Value
toJSON = DeleteForumTopicRequest -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
type DeleteForumTopic
= "deleteForumTopic"
:> ReqBody '[JSON] DeleteForumTopicRequest
:> Post '[JSON] (Response Bool)
deleteForumTopic :: DeleteForumTopicRequest -> ClientM (Response Bool)
deleteForumTopic :: DeleteForumTopicRequest -> ClientM (Response Bool)
deleteForumTopic = Proxy DeleteForumTopic -> Client ClientM DeleteForumTopic
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (Proxy DeleteForumTopic
forall k (t :: k). Proxy t
Proxy @DeleteForumTopic)
data UnpinAllForumTopicMessagesRequest = UnpinAllForumTopicMessagesRequest
{ UnpinAllForumTopicMessagesRequest -> SomeChatId
unpinAllForumTopicMessagesRequestChatId :: SomeChatId
, UnpinAllForumTopicMessagesRequest -> MessageThreadId
unpinAllForumTopicMessagesRequestMessageThreadId :: MessageThreadId
}
deriving (forall x.
UnpinAllForumTopicMessagesRequest
-> Rep UnpinAllForumTopicMessagesRequest x)
-> (forall x.
Rep UnpinAllForumTopicMessagesRequest x
-> UnpinAllForumTopicMessagesRequest)
-> Generic UnpinAllForumTopicMessagesRequest
forall x.
Rep UnpinAllForumTopicMessagesRequest x
-> UnpinAllForumTopicMessagesRequest
forall x.
UnpinAllForumTopicMessagesRequest
-> Rep UnpinAllForumTopicMessagesRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UnpinAllForumTopicMessagesRequest x
-> UnpinAllForumTopicMessagesRequest
$cfrom :: forall x.
UnpinAllForumTopicMessagesRequest
-> Rep UnpinAllForumTopicMessagesRequest x
Generic
instance ToJSON UnpinAllForumTopicMessagesRequest where toJSON :: UnpinAllForumTopicMessagesRequest -> Value
toJSON = UnpinAllForumTopicMessagesRequest -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
type UnpinAllForumTopicMessages
= "unpinAllForumTopicMessages"
:> ReqBody '[JSON] UnpinAllForumTopicMessagesRequest
:> Post '[JSON] (Response Bool)
unpinAllForumTopicMessages :: UnpinAllForumTopicMessagesRequest -> ClientM (Response Bool)
unpinAllForumTopicMessages :: UnpinAllForumTopicMessagesRequest -> ClientM (Response Bool)
unpinAllForumTopicMessages = Proxy UnpinAllForumTopicMessages
-> Client ClientM UnpinAllForumTopicMessages
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (Proxy UnpinAllForumTopicMessages
forall k (t :: k). Proxy t
Proxy @UnpinAllForumTopicMessages)