{-# 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)
data EditGeneralForumTopicRequest = EditGeneralForumTopicRequest
{ EditGeneralForumTopicRequest -> SomeChatId
editGeneralForumTopicRequestChatId :: SomeChatId
, EditGeneralForumTopicRequest -> Text
editGeneralForumTopicRequestName :: Text
}
deriving (forall x.
EditGeneralForumTopicRequest -> Rep EditGeneralForumTopicRequest x)
-> (forall x.
Rep EditGeneralForumTopicRequest x -> EditGeneralForumTopicRequest)
-> Generic EditGeneralForumTopicRequest
forall x.
Rep EditGeneralForumTopicRequest x -> EditGeneralForumTopicRequest
forall x.
EditGeneralForumTopicRequest -> Rep EditGeneralForumTopicRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep EditGeneralForumTopicRequest x -> EditGeneralForumTopicRequest
$cfrom :: forall x.
EditGeneralForumTopicRequest -> Rep EditGeneralForumTopicRequest x
Generic
instance ToJSON EditGeneralForumTopicRequest where toJSON :: EditGeneralForumTopicRequest -> Value
toJSON = EditGeneralForumTopicRequest -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
type EditGeneralForumTopic
= "editGeneralForumTopic"
:> ReqBody '[JSON] EditGeneralForumTopicRequest
:> Post '[JSON] (Response Bool)
editGeneralForumTopic :: EditGeneralForumTopicRequest -> ClientM (Response Bool)
editGeneralForumTopic :: EditGeneralForumTopicRequest -> ClientM (Response Bool)
editGeneralForumTopic = Proxy EditGeneralForumTopic -> Client ClientM EditGeneralForumTopic
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (Proxy EditGeneralForumTopic
forall k (t :: k). Proxy t
Proxy @EditGeneralForumTopic)
data CloseGeneralForumTopicRequest = CloseGeneralForumTopicRequest
{ CloseGeneralForumTopicRequest -> SomeChatId
closeGeneralForumTopicChatId :: SomeChatId
}
deriving (forall x.
CloseGeneralForumTopicRequest
-> Rep CloseGeneralForumTopicRequest x)
-> (forall x.
Rep CloseGeneralForumTopicRequest x
-> CloseGeneralForumTopicRequest)
-> Generic CloseGeneralForumTopicRequest
forall x.
Rep CloseGeneralForumTopicRequest x
-> CloseGeneralForumTopicRequest
forall x.
CloseGeneralForumTopicRequest
-> Rep CloseGeneralForumTopicRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CloseGeneralForumTopicRequest x
-> CloseGeneralForumTopicRequest
$cfrom :: forall x.
CloseGeneralForumTopicRequest
-> Rep CloseGeneralForumTopicRequest x
Generic
instance ToJSON CloseGeneralForumTopicRequest where toJSON :: CloseGeneralForumTopicRequest -> Value
toJSON = CloseGeneralForumTopicRequest -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
type CloseGeneralForumTopic
= "closeGeneralForumTopic"
:> ReqBody '[JSON] CloseGeneralForumTopicRequest
:> Post '[JSON] (Response Bool)
closeGeneralForumTopic :: CloseGeneralForumTopicRequest -> ClientM (Response Bool)
closeGeneralForumTopic :: CloseGeneralForumTopicRequest -> ClientM (Response Bool)
closeGeneralForumTopic = Proxy CloseGeneralForumTopic
-> Client ClientM CloseGeneralForumTopic
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (Proxy CloseGeneralForumTopic
forall k (t :: k). Proxy t
Proxy @CloseGeneralForumTopic)
data ReopenGeneralForumTopicRequest = ReopenGeneralForumTopicRequest
{ ReopenGeneralForumTopicRequest -> SomeChatId
reopenGeneralForumTopicRequestChatId :: SomeChatId
}
deriving (forall x.
ReopenGeneralForumTopicRequest
-> Rep ReopenGeneralForumTopicRequest x)
-> (forall x.
Rep ReopenGeneralForumTopicRequest x
-> ReopenGeneralForumTopicRequest)
-> Generic ReopenGeneralForumTopicRequest
forall x.
Rep ReopenGeneralForumTopicRequest x
-> ReopenGeneralForumTopicRequest
forall x.
ReopenGeneralForumTopicRequest
-> Rep ReopenGeneralForumTopicRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ReopenGeneralForumTopicRequest x
-> ReopenGeneralForumTopicRequest
$cfrom :: forall x.
ReopenGeneralForumTopicRequest
-> Rep ReopenGeneralForumTopicRequest x
Generic
instance ToJSON ReopenGeneralForumTopicRequest where toJSON :: ReopenGeneralForumTopicRequest -> Value
toJSON = ReopenGeneralForumTopicRequest -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
type ReopenGeneralForumTopic
= "reopenGeneralForumTopic"
:> ReqBody '[JSON] ReopenGeneralForumTopicRequest
:> Post '[JSON] (Response Bool)
reopenGeneralForumTopic :: ReopenGeneralForumTopicRequest -> ClientM (Response Bool)
reopenGeneralForumTopic :: ReopenGeneralForumTopicRequest -> ClientM (Response Bool)
reopenGeneralForumTopic = Proxy ReopenGeneralForumTopic
-> Client ClientM ReopenGeneralForumTopic
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (Proxy ReopenGeneralForumTopic
forall k (t :: k). Proxy t
Proxy @ReopenGeneralForumTopic)
data HideGeneralForumTopicRequest = HideGeneralForumTopicRequest
{ HideGeneralForumTopicRequest -> SomeChatId
hideGeneralForumTopicRequestChatId :: SomeChatId
}
deriving (forall x.
HideGeneralForumTopicRequest -> Rep HideGeneralForumTopicRequest x)
-> (forall x.
Rep HideGeneralForumTopicRequest x -> HideGeneralForumTopicRequest)
-> Generic HideGeneralForumTopicRequest
forall x.
Rep HideGeneralForumTopicRequest x -> HideGeneralForumTopicRequest
forall x.
HideGeneralForumTopicRequest -> Rep HideGeneralForumTopicRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep HideGeneralForumTopicRequest x -> HideGeneralForumTopicRequest
$cfrom :: forall x.
HideGeneralForumTopicRequest -> Rep HideGeneralForumTopicRequest x
Generic
instance ToJSON HideGeneralForumTopicRequest where toJSON :: HideGeneralForumTopicRequest -> Value
toJSON = HideGeneralForumTopicRequest -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
type HideGeneralForumTopic
= "hideGeneralForumTopic"
:> ReqBody '[JSON] HideGeneralForumTopicRequest
:> Post '[JSON] (Response Bool)
hideGeneralForumTopic :: HideGeneralForumTopicRequest -> ClientM (Response Bool)
hideGeneralForumTopic :: HideGeneralForumTopicRequest -> ClientM (Response Bool)
hideGeneralForumTopic = Proxy HideGeneralForumTopic -> Client ClientM HideGeneralForumTopic
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (Proxy HideGeneralForumTopic
forall k (t :: k). Proxy t
Proxy @HideGeneralForumTopic)
data UnhideGeneralForumTopicRequest = UnhideGeneralForumTopicRequest
{ UnhideGeneralForumTopicRequest -> SomeChatId
unhideGeneralForumTopicRequestChatId :: SomeChatId
}
deriving (forall x.
UnhideGeneralForumTopicRequest
-> Rep UnhideGeneralForumTopicRequest x)
-> (forall x.
Rep UnhideGeneralForumTopicRequest x
-> UnhideGeneralForumTopicRequest)
-> Generic UnhideGeneralForumTopicRequest
forall x.
Rep UnhideGeneralForumTopicRequest x
-> UnhideGeneralForumTopicRequest
forall x.
UnhideGeneralForumTopicRequest
-> Rep UnhideGeneralForumTopicRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UnhideGeneralForumTopicRequest x
-> UnhideGeneralForumTopicRequest
$cfrom :: forall x.
UnhideGeneralForumTopicRequest
-> Rep UnhideGeneralForumTopicRequest x
Generic
instance ToJSON UnhideGeneralForumTopicRequest where toJSON :: UnhideGeneralForumTopicRequest -> Value
toJSON = UnhideGeneralForumTopicRequest -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
type UnhideGeneralForumTopic
= "unhideGeneralForumTopic"
:> ReqBody '[JSON] UnhideGeneralForumTopicRequest
:> Post '[JSON] (Response Bool)
unhideGeneralForumTopic :: UnhideGeneralForumTopicRequest -> ClientM (Response Bool)
unhideGeneralForumTopic :: UnhideGeneralForumTopicRequest -> ClientM (Response Bool)
unhideGeneralForumTopic = Proxy UnhideGeneralForumTopic
-> Client ClientM UnhideGeneralForumTopic
forall api.
HasClient ClientM api =>
Proxy api -> Client ClientM api
client (Proxy UnhideGeneralForumTopic
forall k (t :: k). Proxy t
Proxy @UnhideGeneralForumTopic)