{-# LANGUAGE TemplateHaskell #-}
{-# OPTIONS_GHC -Wno-partial-type-signatures #-}
module Calamity.HTTP.Channel (
ChannelRequest (..),
CreateMessageAttachment (..),
CreateMessageOptions (..),
EditMessageData (..),
editMessageContent,
editMessageEmbeds,
editMessageFlags,
editMessageAllowedMentions,
editMessageComponents,
ChannelUpdate (..),
AllowedMentionType (..),
AllowedMentions (..),
ChannelMessagesFilter (..),
ChannelMessagesLimit (..),
GetReactionsOptions (..),
CreateChannelInviteOptions (..),
GroupDMAddRecipientOptions (..),
) where
import Calamity.HTTP.Internal.Request
import Calamity.HTTP.Internal.Route
import Calamity.Internal.Utils (CalamityToJSON (..), CalamityToJSON' (..), (.=), (.?=))
import Calamity.Types.Model.Channel
import Calamity.Types.Model.Guild.Emoji (RawEmoji (..))
import Calamity.Types.Model.Guild.Invite (Invite)
import Calamity.Types.Model.Guild.Overwrite (Overwrite)
import Calamity.Types.Model.Guild.Role (Role)
import Calamity.Types.Model.User
import Calamity.Types.Snowflake
import Data.Aeson qualified as Aeson
import Data.Aeson.KeyMap qualified as K
import Data.ByteString.Lazy (ByteString)
import Data.Default.Class
import Data.Maybe (fromMaybe)
import Data.Text (Text)
import Data.Text qualified as T
import Data.Word
import Network.HTTP.Client.MultipartFormData
import Network.HTTP.Req
import Network.Mime
import Optics
import TextShow
data CreateMessageAttachment = CreateMessageAttachment
{ CreateMessageAttachment -> Text
filename :: Text
, CreateMessageAttachment -> Maybe Text
description :: Maybe Text
, CreateMessageAttachment -> ByteString
content :: ByteString
}
deriving (Int -> CreateMessageAttachment -> ShowS
[CreateMessageAttachment] -> ShowS
CreateMessageAttachment -> String
(Int -> CreateMessageAttachment -> ShowS)
-> (CreateMessageAttachment -> String)
-> ([CreateMessageAttachment] -> ShowS)
-> Show CreateMessageAttachment
forall (a :: OpticKind).
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CreateMessageAttachment -> ShowS
showsPrec :: Int -> CreateMessageAttachment -> ShowS
$cshow :: CreateMessageAttachment -> String
show :: CreateMessageAttachment -> String
$cshowList :: [CreateMessageAttachment] -> ShowS
showList :: [CreateMessageAttachment] -> ShowS
Show)
data CreateMessageOptions = CreateMessageOptions
{ CreateMessageOptions -> Maybe Text
content :: Maybe Text
, CreateMessageOptions -> Maybe Text
nonce :: Maybe Text
, CreateMessageOptions -> Maybe Bool
tts :: Maybe Bool
, CreateMessageOptions -> Maybe [CreateMessageAttachment]
attachments :: Maybe [CreateMessageAttachment]
, CreateMessageOptions -> Maybe [Embed]
embeds :: Maybe [Embed]
, CreateMessageOptions -> Maybe AllowedMentions
allowedMentions :: Maybe AllowedMentions
, CreateMessageOptions -> Maybe MessageReference
messageReference :: Maybe MessageReference
, CreateMessageOptions -> Maybe [Component]
components :: Maybe [Component]
}
deriving (Int -> CreateMessageOptions -> ShowS
[CreateMessageOptions] -> ShowS
CreateMessageOptions -> String
(Int -> CreateMessageOptions -> ShowS)
-> (CreateMessageOptions -> String)
-> ([CreateMessageOptions] -> ShowS)
-> Show CreateMessageOptions
forall (a :: OpticKind).
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CreateMessageOptions -> ShowS
showsPrec :: Int -> CreateMessageOptions -> ShowS
$cshow :: CreateMessageOptions -> String
show :: CreateMessageOptions -> String
$cshowList :: [CreateMessageOptions] -> ShowS
showList :: [CreateMessageOptions] -> ShowS
Show)
instance Default CreateMessageOptions where
def :: CreateMessageOptions
def = Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe [CreateMessageAttachment]
-> Maybe [Embed]
-> Maybe AllowedMentions
-> Maybe MessageReference
-> Maybe [Component]
-> CreateMessageOptions
CreateMessageOptions Maybe Text
forall (a :: OpticKind). Maybe a
Nothing Maybe Text
forall (a :: OpticKind). Maybe a
Nothing Maybe Bool
forall (a :: OpticKind). Maybe a
Nothing Maybe [CreateMessageAttachment]
forall (a :: OpticKind). Maybe a
Nothing Maybe [Embed]
forall (a :: OpticKind). Maybe a
Nothing Maybe AllowedMentions
forall (a :: OpticKind). Maybe a
Nothing Maybe MessageReference
forall (a :: OpticKind). Maybe a
Nothing Maybe [Component]
forall (a :: OpticKind). Maybe a
Nothing
data CreateMessageAttachmentJson = CreateMessageAttachmentJson
{ CreateMessageAttachmentJson -> Int
id :: Int
, CreateMessageAttachmentJson -> Text
filename :: Text
, CreateMessageAttachmentJson -> Maybe Text
description :: Maybe Text
}
deriving (Int -> CreateMessageAttachmentJson -> ShowS
[CreateMessageAttachmentJson] -> ShowS
CreateMessageAttachmentJson -> String
(Int -> CreateMessageAttachmentJson -> ShowS)
-> (CreateMessageAttachmentJson -> String)
-> ([CreateMessageAttachmentJson] -> ShowS)
-> Show CreateMessageAttachmentJson
forall (a :: OpticKind).
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CreateMessageAttachmentJson -> ShowS
showsPrec :: Int -> CreateMessageAttachmentJson -> ShowS
$cshow :: CreateMessageAttachmentJson -> String
show :: CreateMessageAttachmentJson -> String
$cshowList :: [CreateMessageAttachmentJson] -> ShowS
showList :: [CreateMessageAttachmentJson] -> ShowS
Show)
deriving ([CreateMessageAttachmentJson] -> Value
[CreateMessageAttachmentJson] -> Encoding
CreateMessageAttachmentJson -> Value
CreateMessageAttachmentJson -> Encoding
(CreateMessageAttachmentJson -> Value)
-> (CreateMessageAttachmentJson -> Encoding)
-> ([CreateMessageAttachmentJson] -> Value)
-> ([CreateMessageAttachmentJson] -> Encoding)
-> ToJSON CreateMessageAttachmentJson
forall (a :: OpticKind).
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: CreateMessageAttachmentJson -> Value
toJSON :: CreateMessageAttachmentJson -> Value
$ctoEncoding :: CreateMessageAttachmentJson -> Encoding
toEncoding :: CreateMessageAttachmentJson -> Encoding
$ctoJSONList :: [CreateMessageAttachmentJson] -> Value
toJSONList :: [CreateMessageAttachmentJson] -> Value
$ctoEncodingList :: [CreateMessageAttachmentJson] -> Encoding
toEncodingList :: [CreateMessageAttachmentJson] -> Encoding
Aeson.ToJSON) via CalamityToJSON CreateMessageAttachmentJson
instance CalamityToJSON' CreateMessageAttachmentJson where
toPairs :: forall (kv :: OpticKind).
KeyValue kv =>
CreateMessageAttachmentJson -> [Maybe kv]
toPairs CreateMessageAttachmentJson {Int
Maybe Text
Text
$sel:id:CreateMessageAttachmentJson :: CreateMessageAttachmentJson -> Int
$sel:filename:CreateMessageAttachmentJson :: CreateMessageAttachmentJson -> Text
$sel:description:CreateMessageAttachmentJson :: CreateMessageAttachmentJson -> Maybe Text
id :: Int
filename :: Text
description :: Maybe Text
..} =
[ Key
"filename" Key -> Text -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> v -> Maybe kv
.= Text
filename
, Key
"description" Key -> Maybe Text -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe Text
description
, Key
"id" Key -> Int -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> v -> Maybe kv
.= Int
id
]
data CreateMessageJson = CreateMessageJson
{ CreateMessageJson -> Maybe Text
content :: Maybe Text
, CreateMessageJson -> Maybe Text
nonce :: Maybe Text
, CreateMessageJson -> Maybe Bool
tts :: Maybe Bool
, CreateMessageJson -> Maybe [Embed]
embeds :: Maybe [Embed]
, CreateMessageJson -> Maybe AllowedMentions
allowedMentions :: Maybe AllowedMentions
, CreateMessageJson -> Maybe MessageReference
messageReference :: Maybe MessageReference
, CreateMessageJson -> Maybe [Component]
components :: Maybe [Component]
, CreateMessageJson -> Maybe [CreateMessageAttachmentJson]
attachments :: Maybe [CreateMessageAttachmentJson]
}
deriving (Int -> CreateMessageJson -> ShowS
[CreateMessageJson] -> ShowS
CreateMessageJson -> String
(Int -> CreateMessageJson -> ShowS)
-> (CreateMessageJson -> String)
-> ([CreateMessageJson] -> ShowS)
-> Show CreateMessageJson
forall (a :: OpticKind).
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CreateMessageJson -> ShowS
showsPrec :: Int -> CreateMessageJson -> ShowS
$cshow :: CreateMessageJson -> String
show :: CreateMessageJson -> String
$cshowList :: [CreateMessageJson] -> ShowS
showList :: [CreateMessageJson] -> ShowS
Show)
deriving ([CreateMessageJson] -> Value
[CreateMessageJson] -> Encoding
CreateMessageJson -> Value
CreateMessageJson -> Encoding
(CreateMessageJson -> Value)
-> (CreateMessageJson -> Encoding)
-> ([CreateMessageJson] -> Value)
-> ([CreateMessageJson] -> Encoding)
-> ToJSON CreateMessageJson
forall (a :: OpticKind).
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: CreateMessageJson -> Value
toJSON :: CreateMessageJson -> Value
$ctoEncoding :: CreateMessageJson -> Encoding
toEncoding :: CreateMessageJson -> Encoding
$ctoJSONList :: [CreateMessageJson] -> Value
toJSONList :: [CreateMessageJson] -> Value
$ctoEncodingList :: [CreateMessageJson] -> Encoding
toEncodingList :: [CreateMessageJson] -> Encoding
Aeson.ToJSON) via CalamityToJSON CreateMessageJson
instance CalamityToJSON' CreateMessageJson where
toPairs :: forall (kv :: OpticKind).
KeyValue kv =>
CreateMessageJson -> [Maybe kv]
toPairs CreateMessageJson {Maybe Bool
Maybe [Embed]
Maybe [Component]
Maybe [CreateMessageAttachmentJson]
Maybe Text
Maybe MessageReference
Maybe AllowedMentions
$sel:content:CreateMessageJson :: CreateMessageJson -> Maybe Text
$sel:nonce:CreateMessageJson :: CreateMessageJson -> Maybe Text
$sel:tts:CreateMessageJson :: CreateMessageJson -> Maybe Bool
$sel:embeds:CreateMessageJson :: CreateMessageJson -> Maybe [Embed]
$sel:allowedMentions:CreateMessageJson :: CreateMessageJson -> Maybe AllowedMentions
$sel:messageReference:CreateMessageJson :: CreateMessageJson -> Maybe MessageReference
$sel:components:CreateMessageJson :: CreateMessageJson -> Maybe [Component]
$sel:attachments:CreateMessageJson :: CreateMessageJson -> Maybe [CreateMessageAttachmentJson]
content :: Maybe Text
nonce :: Maybe Text
tts :: Maybe Bool
embeds :: Maybe [Embed]
allowedMentions :: Maybe AllowedMentions
messageReference :: Maybe MessageReference
components :: Maybe [Component]
attachments :: Maybe [CreateMessageAttachmentJson]
..} =
[ Key
"content" Key -> Maybe Text -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe Text
content
, Key
"nonce" Key -> Maybe Text -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe Text
nonce
, Key
"tts" Key -> Maybe Bool -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe Bool
tts
, Key
"embeds" Key -> Maybe [Embed] -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe [Embed]
embeds
, Key
"allowed_mentions" Key -> Maybe AllowedMentions -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe AllowedMentions
allowedMentions
, Key
"message_reference" Key -> Maybe MessageReference -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe MessageReference
messageReference
, Key
"components" Key -> Maybe [Component] -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe [Component]
components
, Key
"attachments" Key -> Maybe [CreateMessageAttachmentJson] -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe [CreateMessageAttachmentJson]
attachments
]
data AllowedMentionType
= AllowedMentionRoles
| AllowedMentionUsers
| AllowedMentionEveryone
deriving (Int -> AllowedMentionType -> ShowS
[AllowedMentionType] -> ShowS
AllowedMentionType -> String
(Int -> AllowedMentionType -> ShowS)
-> (AllowedMentionType -> String)
-> ([AllowedMentionType] -> ShowS)
-> Show AllowedMentionType
forall (a :: OpticKind).
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AllowedMentionType -> ShowS
showsPrec :: Int -> AllowedMentionType -> ShowS
$cshow :: AllowedMentionType -> String
show :: AllowedMentionType -> String
$cshowList :: [AllowedMentionType] -> ShowS
showList :: [AllowedMentionType] -> ShowS
Show)
instance Aeson.ToJSON AllowedMentionType where
toJSON :: AllowedMentionType -> Value
toJSON AllowedMentionType
AllowedMentionRoles = Text -> Value
Aeson.String Text
"roles"
toJSON AllowedMentionType
AllowedMentionUsers = Text -> Value
Aeson.String Text
"users"
toJSON AllowedMentionType
AllowedMentionEveryone = Text -> Value
Aeson.String Text
"everyone"
data AllowedMentions = AllowedMentions
{ AllowedMentions -> [AllowedMentionType]
parse :: [AllowedMentionType]
, AllowedMentions -> [Snowflake Role]
roles :: [Snowflake Role]
, AllowedMentions -> [Snowflake User]
users :: [Snowflake User]
, AllowedMentions -> Bool
repliedUser :: Bool
}
deriving (Int -> AllowedMentions -> ShowS
[AllowedMentions] -> ShowS
AllowedMentions -> String
(Int -> AllowedMentions -> ShowS)
-> (AllowedMentions -> String)
-> ([AllowedMentions] -> ShowS)
-> Show AllowedMentions
forall (a :: OpticKind).
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AllowedMentions -> ShowS
showsPrec :: Int -> AllowedMentions -> ShowS
$cshow :: AllowedMentions -> String
show :: AllowedMentions -> String
$cshowList :: [AllowedMentions] -> ShowS
showList :: [AllowedMentions] -> ShowS
Show)
deriving ([AllowedMentions] -> Value
[AllowedMentions] -> Encoding
AllowedMentions -> Value
AllowedMentions -> Encoding
(AllowedMentions -> Value)
-> (AllowedMentions -> Encoding)
-> ([AllowedMentions] -> Value)
-> ([AllowedMentions] -> Encoding)
-> ToJSON AllowedMentions
forall (a :: OpticKind).
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: AllowedMentions -> Value
toJSON :: AllowedMentions -> Value
$ctoEncoding :: AllowedMentions -> Encoding
toEncoding :: AllowedMentions -> Encoding
$ctoJSONList :: [AllowedMentions] -> Value
toJSONList :: [AllowedMentions] -> Value
$ctoEncodingList :: [AllowedMentions] -> Encoding
toEncodingList :: [AllowedMentions] -> Encoding
Aeson.ToJSON) via CalamityToJSON AllowedMentions
instance CalamityToJSON' AllowedMentions where
toPairs :: forall (kv :: OpticKind).
KeyValue kv =>
AllowedMentions -> [Maybe kv]
toPairs AllowedMentions {Bool
[Snowflake Role]
[Snowflake User]
[AllowedMentionType]
$sel:parse:AllowedMentions :: AllowedMentions -> [AllowedMentionType]
$sel:roles:AllowedMentions :: AllowedMentions -> [Snowflake Role]
$sel:users:AllowedMentions :: AllowedMentions -> [Snowflake User]
$sel:repliedUser:AllowedMentions :: AllowedMentions -> Bool
parse :: [AllowedMentionType]
roles :: [Snowflake Role]
users :: [Snowflake User]
repliedUser :: Bool
..} =
[ Key
"parse" Key -> [AllowedMentionType] -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> v -> Maybe kv
.= [AllowedMentionType]
parse
, Key
"roles" Key -> [Snowflake Role] -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> v -> Maybe kv
.= [Snowflake Role]
roles
, Key
"users" Key -> [Snowflake User] -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> v -> Maybe kv
.= [Snowflake User]
users
, Key
"replied_user" Key -> Bool -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> v -> Maybe kv
.= Bool
repliedUser
]
instance Default AllowedMentions where
def :: AllowedMentions
def = [AllowedMentionType]
-> [Snowflake Role] -> [Snowflake User] -> Bool -> AllowedMentions
AllowedMentions [AllowedMentionType]
forall (a :: OpticKind). Default a => a
def [Snowflake Role]
forall (a :: OpticKind). Default a => a
def [Snowflake User]
forall (a :: OpticKind). Default a => a
def Bool
False
instance Semigroup AllowedMentions where
AllowedMentions [AllowedMentionType]
p0 [Snowflake Role]
r0 [Snowflake User]
u0 Bool
ru0 <> :: AllowedMentions -> AllowedMentions -> AllowedMentions
<> AllowedMentions [AllowedMentionType]
p1 [Snowflake Role]
r1 [Snowflake User]
u1 Bool
ru1 =
[AllowedMentionType]
-> [Snowflake Role] -> [Snowflake User] -> Bool -> AllowedMentions
AllowedMentions ([AllowedMentionType]
p0 [AllowedMentionType]
-> [AllowedMentionType] -> [AllowedMentionType]
forall (a :: OpticKind). Semigroup a => a -> a -> a
<> [AllowedMentionType]
p1) ([Snowflake Role]
r0 [Snowflake Role] -> [Snowflake Role] -> [Snowflake Role]
forall (a :: OpticKind). Semigroup a => a -> a -> a
<> [Snowflake Role]
r1) ([Snowflake User]
u0 [Snowflake User] -> [Snowflake User] -> [Snowflake User]
forall (a :: OpticKind). Semigroup a => a -> a -> a
<> [Snowflake User]
u1) (Bool
ru0 Bool -> Bool -> Bool
|| Bool
ru1)
instance Monoid AllowedMentions where
mempty :: AllowedMentions
mempty = AllowedMentions
forall (a :: OpticKind). Default a => a
def
newtype EditMessageData = EditMessageData Aeson.Object
deriving stock (Int -> EditMessageData -> ShowS
[EditMessageData] -> ShowS
EditMessageData -> String
(Int -> EditMessageData -> ShowS)
-> (EditMessageData -> String)
-> ([EditMessageData] -> ShowS)
-> Show EditMessageData
forall (a :: OpticKind).
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EditMessageData -> ShowS
showsPrec :: Int -> EditMessageData -> ShowS
$cshow :: EditMessageData -> String
show :: EditMessageData -> String
$cshowList :: [EditMessageData] -> ShowS
showList :: [EditMessageData] -> ShowS
Show)
deriving newtype ([EditMessageData] -> Value
[EditMessageData] -> Encoding
EditMessageData -> Value
EditMessageData -> Encoding
(EditMessageData -> Value)
-> (EditMessageData -> Encoding)
-> ([EditMessageData] -> Value)
-> ([EditMessageData] -> Encoding)
-> ToJSON EditMessageData
forall (a :: OpticKind).
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: EditMessageData -> Value
toJSON :: EditMessageData -> Value
$ctoEncoding :: EditMessageData -> Encoding
toEncoding :: EditMessageData -> Encoding
$ctoJSONList :: [EditMessageData] -> Value
toJSONList :: [EditMessageData] -> Value
$ctoEncodingList :: [EditMessageData] -> Encoding
toEncodingList :: [EditMessageData] -> Encoding
Aeson.ToJSON, NonEmpty EditMessageData -> EditMessageData
EditMessageData -> EditMessageData -> EditMessageData
(EditMessageData -> EditMessageData -> EditMessageData)
-> (NonEmpty EditMessageData -> EditMessageData)
-> (forall (b :: OpticKind).
Integral b =>
b -> EditMessageData -> EditMessageData)
-> Semigroup EditMessageData
forall (b :: OpticKind).
Integral b =>
b -> EditMessageData -> EditMessageData
forall (a :: OpticKind).
(a -> a -> a)
-> (NonEmpty a -> a)
-> (forall (b :: OpticKind). Integral b => b -> a -> a)
-> Semigroup a
$c<> :: EditMessageData -> EditMessageData -> EditMessageData
<> :: EditMessageData -> EditMessageData -> EditMessageData
$csconcat :: NonEmpty EditMessageData -> EditMessageData
sconcat :: NonEmpty EditMessageData -> EditMessageData
$cstimes :: forall (b :: OpticKind).
Integral b =>
b -> EditMessageData -> EditMessageData
stimes :: forall (b :: OpticKind).
Integral b =>
b -> EditMessageData -> EditMessageData
Semigroup, Semigroup EditMessageData
EditMessageData
Semigroup EditMessageData
-> EditMessageData
-> (EditMessageData -> EditMessageData -> EditMessageData)
-> ([EditMessageData] -> EditMessageData)
-> Monoid EditMessageData
[EditMessageData] -> EditMessageData
EditMessageData -> EditMessageData -> EditMessageData
forall (a :: OpticKind).
Semigroup a -> a -> (a -> a -> a) -> ([a] -> a) -> Monoid a
$cmempty :: EditMessageData
mempty :: EditMessageData
$cmappend :: EditMessageData -> EditMessageData -> EditMessageData
mappend :: EditMessageData -> EditMessageData -> EditMessageData
$cmconcat :: [EditMessageData] -> EditMessageData
mconcat :: [EditMessageData] -> EditMessageData
Monoid)
editMessageContent :: Maybe Text -> EditMessageData
editMessageContent :: Maybe Text -> EditMessageData
editMessageContent Maybe Text
v = Object -> EditMessageData
EditMessageData (Object -> EditMessageData) -> Object -> EditMessageData
forall (a :: OpticKind) b. (a -> b) -> a -> b
$ [(Key, Value)] -> Object
forall (v :: OpticKind). [(Key, v)] -> KeyMap v
K.fromList [(Key
"content", Maybe Text -> Value
forall (a :: OpticKind). ToJSON a => a -> Value
Aeson.toJSON Maybe Text
v)]
editMessageEmbeds :: [Embed] -> EditMessageData
editMessageEmbeds :: [Embed] -> EditMessageData
editMessageEmbeds [Embed]
v = Object -> EditMessageData
EditMessageData (Object -> EditMessageData) -> Object -> EditMessageData
forall (a :: OpticKind) b. (a -> b) -> a -> b
$ [(Key, Value)] -> Object
forall (v :: OpticKind). [(Key, v)] -> KeyMap v
K.fromList [(Key
"embeds", [Embed] -> Value
forall (a :: OpticKind). ToJSON a => a -> Value
Aeson.toJSON [Embed]
v)]
editMessageFlags :: Maybe Word64 -> EditMessageData
editMessageFlags :: Maybe Word64 -> EditMessageData
editMessageFlags Maybe Word64
v = Object -> EditMessageData
EditMessageData (Object -> EditMessageData) -> Object -> EditMessageData
forall (a :: OpticKind) b. (a -> b) -> a -> b
$ [(Key, Value)] -> Object
forall (v :: OpticKind). [(Key, v)] -> KeyMap v
K.fromList [(Key
"flags", Maybe Word64 -> Value
forall (a :: OpticKind). ToJSON a => a -> Value
Aeson.toJSON Maybe Word64
v)]
editMessageAllowedMentions :: Maybe AllowedMentions -> EditMessageData
editMessageAllowedMentions :: Maybe AllowedMentions -> EditMessageData
editMessageAllowedMentions Maybe AllowedMentions
v = Object -> EditMessageData
EditMessageData (Object -> EditMessageData) -> Object -> EditMessageData
forall (a :: OpticKind) b. (a -> b) -> a -> b
$ [(Key, Value)] -> Object
forall (v :: OpticKind). [(Key, v)] -> KeyMap v
K.fromList [(Key
"allowed_mentions", Maybe AllowedMentions -> Value
forall (a :: OpticKind). ToJSON a => a -> Value
Aeson.toJSON Maybe AllowedMentions
v)]
editMessageComponents :: [Component] -> EditMessageData
editMessageComponents :: [Component] -> EditMessageData
editMessageComponents [Component]
v = Object -> EditMessageData
EditMessageData (Object -> EditMessageData) -> Object -> EditMessageData
forall (a :: OpticKind) b. (a -> b) -> a -> b
$ [(Key, Value)] -> Object
forall (v :: OpticKind). [(Key, v)] -> KeyMap v
K.fromList [(Key
"components", [Component] -> Value
forall (a :: OpticKind). ToJSON a => a -> Value
Aeson.toJSON [Component]
v)]
data ChannelUpdate = ChannelUpdate
{ ChannelUpdate -> Maybe Text
name :: Maybe Text
, ChannelUpdate -> Maybe Int
position :: Maybe Int
, ChannelUpdate -> Maybe Text
topic :: Maybe Text
, ChannelUpdate -> Maybe Bool
nsfw :: Maybe Bool
, ChannelUpdate -> Maybe Int
rateLimitPerUser :: Maybe Int
, ChannelUpdate -> Maybe Int
bitrate :: Maybe Int
, ChannelUpdate -> Maybe Int
userLimit :: Maybe Int
, ChannelUpdate -> Maybe [Overwrite]
permissionOverwrites :: Maybe [Overwrite]
, ChannelUpdate -> Maybe (Snowflake Channel)
parentID :: Maybe (Snowflake Channel)
}
deriving (Int -> ChannelUpdate -> ShowS
[ChannelUpdate] -> ShowS
ChannelUpdate -> String
(Int -> ChannelUpdate -> ShowS)
-> (ChannelUpdate -> String)
-> ([ChannelUpdate] -> ShowS)
-> Show ChannelUpdate
forall (a :: OpticKind).
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ChannelUpdate -> ShowS
showsPrec :: Int -> ChannelUpdate -> ShowS
$cshow :: ChannelUpdate -> String
show :: ChannelUpdate -> String
$cshowList :: [ChannelUpdate] -> ShowS
showList :: [ChannelUpdate] -> ShowS
Show)
deriving ([ChannelUpdate] -> Value
[ChannelUpdate] -> Encoding
ChannelUpdate -> Value
ChannelUpdate -> Encoding
(ChannelUpdate -> Value)
-> (ChannelUpdate -> Encoding)
-> ([ChannelUpdate] -> Value)
-> ([ChannelUpdate] -> Encoding)
-> ToJSON ChannelUpdate
forall (a :: OpticKind).
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: ChannelUpdate -> Value
toJSON :: ChannelUpdate -> Value
$ctoEncoding :: ChannelUpdate -> Encoding
toEncoding :: ChannelUpdate -> Encoding
$ctoJSONList :: [ChannelUpdate] -> Value
toJSONList :: [ChannelUpdate] -> Value
$ctoEncodingList :: [ChannelUpdate] -> Encoding
toEncodingList :: [ChannelUpdate] -> Encoding
Aeson.ToJSON) via CalamityToJSON ChannelUpdate
instance Default ChannelUpdate where
def :: ChannelUpdate
def = Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Bool
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe [Overwrite]
-> Maybe (Snowflake Channel)
-> ChannelUpdate
ChannelUpdate Maybe Text
forall (a :: OpticKind). Maybe a
Nothing Maybe Int
forall (a :: OpticKind). Maybe a
Nothing Maybe Text
forall (a :: OpticKind). Maybe a
Nothing Maybe Bool
forall (a :: OpticKind). Maybe a
Nothing Maybe Int
forall (a :: OpticKind). Maybe a
Nothing Maybe Int
forall (a :: OpticKind). Maybe a
Nothing Maybe Int
forall (a :: OpticKind). Maybe a
Nothing Maybe [Overwrite]
forall (a :: OpticKind). Maybe a
Nothing Maybe (Snowflake Channel)
forall (a :: OpticKind). Maybe a
Nothing
instance CalamityToJSON' ChannelUpdate where
toPairs :: forall (kv :: OpticKind).
KeyValue kv =>
ChannelUpdate -> [Maybe kv]
toPairs ChannelUpdate {Maybe Bool
Maybe Int
Maybe [Overwrite]
Maybe Text
Maybe (Snowflake Channel)
$sel:name:ChannelUpdate :: ChannelUpdate -> Maybe Text
$sel:position:ChannelUpdate :: ChannelUpdate -> Maybe Int
$sel:topic:ChannelUpdate :: ChannelUpdate -> Maybe Text
$sel:nsfw:ChannelUpdate :: ChannelUpdate -> Maybe Bool
$sel:rateLimitPerUser:ChannelUpdate :: ChannelUpdate -> Maybe Int
$sel:bitrate:ChannelUpdate :: ChannelUpdate -> Maybe Int
$sel:userLimit:ChannelUpdate :: ChannelUpdate -> Maybe Int
$sel:permissionOverwrites:ChannelUpdate :: ChannelUpdate -> Maybe [Overwrite]
$sel:parentID:ChannelUpdate :: ChannelUpdate -> Maybe (Snowflake Channel)
name :: Maybe Text
position :: Maybe Int
topic :: Maybe Text
nsfw :: Maybe Bool
rateLimitPerUser :: Maybe Int
bitrate :: Maybe Int
userLimit :: Maybe Int
permissionOverwrites :: Maybe [Overwrite]
parentID :: Maybe (Snowflake Channel)
..} =
[ Key
"name" Key -> Maybe Text -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe Text
name
, Key
"position" Key -> Maybe Int -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe Int
position
, Key
"topic" Key -> Maybe Text -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe Text
topic
, Key
"nsfw" Key -> Maybe Bool -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe Bool
nsfw
, Key
"rate_limit_per_user" Key -> Maybe Int -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe Int
rateLimitPerUser
, Key
"bitrate" Key -> Maybe Int -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe Int
bitrate
, Key
"user_limit" Key -> Maybe Int -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe Int
userLimit
, Key
"permission_overwrites" Key -> Maybe [Overwrite] -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe [Overwrite]
permissionOverwrites
, Key
"parent_id" Key -> Maybe (Snowflake Channel) -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe (Snowflake Channel)
parentID
]
data ChannelMessagesFilter
= ChannelMessagesAround
{ ChannelMessagesFilter -> Snowflake Message
around :: Snowflake Message
}
| ChannelMessagesBefore
{ ChannelMessagesFilter -> Snowflake Message
before :: Snowflake Message
}
| ChannelMessagesAfter
{ ChannelMessagesFilter -> Snowflake Message
after :: Snowflake Message
}
deriving (Int -> ChannelMessagesFilter -> ShowS
[ChannelMessagesFilter] -> ShowS
ChannelMessagesFilter -> String
(Int -> ChannelMessagesFilter -> ShowS)
-> (ChannelMessagesFilter -> String)
-> ([ChannelMessagesFilter] -> ShowS)
-> Show ChannelMessagesFilter
forall (a :: OpticKind).
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ChannelMessagesFilter -> ShowS
showsPrec :: Int -> ChannelMessagesFilter -> ShowS
$cshow :: ChannelMessagesFilter -> String
show :: ChannelMessagesFilter -> String
$cshowList :: [ChannelMessagesFilter] -> ShowS
showList :: [ChannelMessagesFilter] -> ShowS
Show)
deriving ([ChannelMessagesFilter] -> Value
[ChannelMessagesFilter] -> Encoding
ChannelMessagesFilter -> Value
ChannelMessagesFilter -> Encoding
(ChannelMessagesFilter -> Value)
-> (ChannelMessagesFilter -> Encoding)
-> ([ChannelMessagesFilter] -> Value)
-> ([ChannelMessagesFilter] -> Encoding)
-> ToJSON ChannelMessagesFilter
forall (a :: OpticKind).
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: ChannelMessagesFilter -> Value
toJSON :: ChannelMessagesFilter -> Value
$ctoEncoding :: ChannelMessagesFilter -> Encoding
toEncoding :: ChannelMessagesFilter -> Encoding
$ctoJSONList :: [ChannelMessagesFilter] -> Value
toJSONList :: [ChannelMessagesFilter] -> Value
$ctoEncodingList :: [ChannelMessagesFilter] -> Encoding
toEncodingList :: [ChannelMessagesFilter] -> Encoding
Aeson.ToJSON) via CalamityToJSON ChannelMessagesFilter
instance CalamityToJSON' ChannelMessagesFilter where
toPairs :: forall (kv :: OpticKind).
KeyValue kv =>
ChannelMessagesFilter -> [Maybe kv]
toPairs ChannelMessagesAround {Snowflake Message
$sel:around:ChannelMessagesAround :: ChannelMessagesFilter -> Snowflake Message
around :: Snowflake Message
around} = [Key
"around" Key -> Snowflake Message -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> v -> Maybe kv
.= Snowflake Message
around]
toPairs ChannelMessagesBefore {Snowflake Message
$sel:before:ChannelMessagesAround :: ChannelMessagesFilter -> Snowflake Message
before :: Snowflake Message
before} = [Key
"before" Key -> Snowflake Message -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> v -> Maybe kv
.= Snowflake Message
before]
toPairs ChannelMessagesAfter {Snowflake Message
$sel:after:ChannelMessagesAround :: ChannelMessagesFilter -> Snowflake Message
after :: Snowflake Message
after} = [Key
"after" Key -> Snowflake Message -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> v -> Maybe kv
.= Snowflake Message
after]
newtype ChannelMessagesLimit = ChannelMessagesLimit
{ ChannelMessagesLimit -> Integer
limit :: Integer
}
deriving stock (Int -> ChannelMessagesLimit -> ShowS
[ChannelMessagesLimit] -> ShowS
ChannelMessagesLimit -> String
(Int -> ChannelMessagesLimit -> ShowS)
-> (ChannelMessagesLimit -> String)
-> ([ChannelMessagesLimit] -> ShowS)
-> Show ChannelMessagesLimit
forall (a :: OpticKind).
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ChannelMessagesLimit -> ShowS
showsPrec :: Int -> ChannelMessagesLimit -> ShowS
$cshow :: ChannelMessagesLimit -> String
show :: ChannelMessagesLimit -> String
$cshowList :: [ChannelMessagesLimit] -> ShowS
showList :: [ChannelMessagesLimit] -> ShowS
Show)
data GetReactionsOptions = GetReactionsOptions
{ GetReactionsOptions -> Maybe (Snowflake User)
before :: Maybe (Snowflake User)
, GetReactionsOptions -> Maybe (Snowflake User)
after :: Maybe (Snowflake User)
, GetReactionsOptions -> Maybe Integer
limit :: Maybe Integer
}
deriving (Int -> GetReactionsOptions -> ShowS
[GetReactionsOptions] -> ShowS
GetReactionsOptions -> String
(Int -> GetReactionsOptions -> ShowS)
-> (GetReactionsOptions -> String)
-> ([GetReactionsOptions] -> ShowS)
-> Show GetReactionsOptions
forall (a :: OpticKind).
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> GetReactionsOptions -> ShowS
showsPrec :: Int -> GetReactionsOptions -> ShowS
$cshow :: GetReactionsOptions -> String
show :: GetReactionsOptions -> String
$cshowList :: [GetReactionsOptions] -> ShowS
showList :: [GetReactionsOptions] -> ShowS
Show)
instance Default GetReactionsOptions where
def :: GetReactionsOptions
def = Maybe (Snowflake User)
-> Maybe (Snowflake User) -> Maybe Integer -> GetReactionsOptions
GetReactionsOptions Maybe (Snowflake User)
forall (a :: OpticKind). Maybe a
Nothing Maybe (Snowflake User)
forall (a :: OpticKind). Maybe a
Nothing Maybe Integer
forall (a :: OpticKind). Maybe a
Nothing
data CreateChannelInviteOptions = CreateChannelInviteOptions
{ CreateChannelInviteOptions -> Maybe Int
maxAge :: Maybe Int
, CreateChannelInviteOptions -> Maybe Int
maxUses :: Maybe Int
, CreateChannelInviteOptions -> Maybe Bool
temporary :: Maybe Bool
, CreateChannelInviteOptions -> Maybe Bool
unique :: Maybe Bool
}
deriving (Int -> CreateChannelInviteOptions -> ShowS
[CreateChannelInviteOptions] -> ShowS
CreateChannelInviteOptions -> String
(Int -> CreateChannelInviteOptions -> ShowS)
-> (CreateChannelInviteOptions -> String)
-> ([CreateChannelInviteOptions] -> ShowS)
-> Show CreateChannelInviteOptions
forall (a :: OpticKind).
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CreateChannelInviteOptions -> ShowS
showsPrec :: Int -> CreateChannelInviteOptions -> ShowS
$cshow :: CreateChannelInviteOptions -> String
show :: CreateChannelInviteOptions -> String
$cshowList :: [CreateChannelInviteOptions] -> ShowS
showList :: [CreateChannelInviteOptions] -> ShowS
Show)
deriving ([CreateChannelInviteOptions] -> Value
[CreateChannelInviteOptions] -> Encoding
CreateChannelInviteOptions -> Value
CreateChannelInviteOptions -> Encoding
(CreateChannelInviteOptions -> Value)
-> (CreateChannelInviteOptions -> Encoding)
-> ([CreateChannelInviteOptions] -> Value)
-> ([CreateChannelInviteOptions] -> Encoding)
-> ToJSON CreateChannelInviteOptions
forall (a :: OpticKind).
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: CreateChannelInviteOptions -> Value
toJSON :: CreateChannelInviteOptions -> Value
$ctoEncoding :: CreateChannelInviteOptions -> Encoding
toEncoding :: CreateChannelInviteOptions -> Encoding
$ctoJSONList :: [CreateChannelInviteOptions] -> Value
toJSONList :: [CreateChannelInviteOptions] -> Value
$ctoEncodingList :: [CreateChannelInviteOptions] -> Encoding
toEncodingList :: [CreateChannelInviteOptions] -> Encoding
Aeson.ToJSON) via CalamityToJSON CreateChannelInviteOptions
instance Default CreateChannelInviteOptions where
def :: CreateChannelInviteOptions
def = Maybe Int
-> Maybe Int
-> Maybe Bool
-> Maybe Bool
-> CreateChannelInviteOptions
CreateChannelInviteOptions Maybe Int
forall (a :: OpticKind). Maybe a
Nothing Maybe Int
forall (a :: OpticKind). Maybe a
Nothing Maybe Bool
forall (a :: OpticKind). Maybe a
Nothing Maybe Bool
forall (a :: OpticKind). Maybe a
Nothing
instance CalamityToJSON' CreateChannelInviteOptions where
toPairs :: forall (kv :: OpticKind).
KeyValue kv =>
CreateChannelInviteOptions -> [Maybe kv]
toPairs CreateChannelInviteOptions {Maybe Bool
Maybe Int
$sel:maxAge:CreateChannelInviteOptions :: CreateChannelInviteOptions -> Maybe Int
$sel:maxUses:CreateChannelInviteOptions :: CreateChannelInviteOptions -> Maybe Int
$sel:temporary:CreateChannelInviteOptions :: CreateChannelInviteOptions -> Maybe Bool
$sel:unique:CreateChannelInviteOptions :: CreateChannelInviteOptions -> Maybe Bool
maxAge :: Maybe Int
maxUses :: Maybe Int
temporary :: Maybe Bool
unique :: Maybe Bool
..} =
[ Key
"max_age" Key -> Maybe Int -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe Int
maxAge
, Key
"max_uses" Key -> Maybe Int -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe Int
maxUses
, Key
"temporary" Key -> Maybe Bool -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe Bool
temporary
, Key
"unique" Key -> Maybe Bool -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> Maybe v -> Maybe kv
.?= Maybe Bool
unique
]
data GroupDMAddRecipientOptions = GroupDMAddRecipientOptions
{ GroupDMAddRecipientOptions -> Text
accessToken :: Text
, GroupDMAddRecipientOptions -> Text
nick :: Text
}
deriving (Int -> GroupDMAddRecipientOptions -> ShowS
[GroupDMAddRecipientOptions] -> ShowS
GroupDMAddRecipientOptions -> String
(Int -> GroupDMAddRecipientOptions -> ShowS)
-> (GroupDMAddRecipientOptions -> String)
-> ([GroupDMAddRecipientOptions] -> ShowS)
-> Show GroupDMAddRecipientOptions
forall (a :: OpticKind).
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> GroupDMAddRecipientOptions -> ShowS
showsPrec :: Int -> GroupDMAddRecipientOptions -> ShowS
$cshow :: GroupDMAddRecipientOptions -> String
show :: GroupDMAddRecipientOptions -> String
$cshowList :: [GroupDMAddRecipientOptions] -> ShowS
showList :: [GroupDMAddRecipientOptions] -> ShowS
Show)
deriving ([GroupDMAddRecipientOptions] -> Value
[GroupDMAddRecipientOptions] -> Encoding
GroupDMAddRecipientOptions -> Value
GroupDMAddRecipientOptions -> Encoding
(GroupDMAddRecipientOptions -> Value)
-> (GroupDMAddRecipientOptions -> Encoding)
-> ([GroupDMAddRecipientOptions] -> Value)
-> ([GroupDMAddRecipientOptions] -> Encoding)
-> ToJSON GroupDMAddRecipientOptions
forall (a :: OpticKind).
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: GroupDMAddRecipientOptions -> Value
toJSON :: GroupDMAddRecipientOptions -> Value
$ctoEncoding :: GroupDMAddRecipientOptions -> Encoding
toEncoding :: GroupDMAddRecipientOptions -> Encoding
$ctoJSONList :: [GroupDMAddRecipientOptions] -> Value
toJSONList :: [GroupDMAddRecipientOptions] -> Value
$ctoEncodingList :: [GroupDMAddRecipientOptions] -> Encoding
toEncodingList :: [GroupDMAddRecipientOptions] -> Encoding
Aeson.ToJSON) via CalamityToJSON GroupDMAddRecipientOptions
instance CalamityToJSON' GroupDMAddRecipientOptions where
toPairs :: forall (kv :: OpticKind).
KeyValue kv =>
GroupDMAddRecipientOptions -> [Maybe kv]
toPairs GroupDMAddRecipientOptions {Text
$sel:accessToken:GroupDMAddRecipientOptions :: GroupDMAddRecipientOptions -> Text
$sel:nick:GroupDMAddRecipientOptions :: GroupDMAddRecipientOptions -> Text
accessToken :: Text
nick :: Text
..} =
[ Key
"access_token" Key -> Text -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> v -> Maybe kv
.= Text
accessToken
, Key
"nick" Key -> Text -> Maybe kv
forall (v :: OpticKind) (kv :: OpticKind).
(ToJSON v, KeyValue kv) =>
Key -> v -> Maybe kv
.= Text
nick
]
$(makeFieldLabelsNoPrefix ''CreateMessageAttachment)
$(makeFieldLabelsNoPrefix ''CreateMessageOptions)
$(makeFieldLabelsNoPrefix ''CreateMessageAttachmentJson)
$(makeFieldLabelsNoPrefix ''AllowedMentions)
$(makeFieldLabelsNoPrefix ''ChannelUpdate)
$(makeFieldLabelsNoPrefix ''ChannelMessagesFilter)
$(makeFieldLabelsNoPrefix ''ChannelMessagesLimit)
$(makeFieldLabelsNoPrefix ''GetReactionsOptions)
$(makeFieldLabelsNoPrefix ''CreateChannelInviteOptions)
$(makeFieldLabelsNoPrefix ''GroupDMAddRecipientOptions)
data ChannelRequest a where
CreateMessage :: (HasID Channel c) => c -> CreateMessageOptions -> ChannelRequest Message
CrosspostMessage :: (HasID Channel c, HasID Message m) => c -> m -> ChannelRequest Message
GetMessage :: (HasID Channel c, HasID Message m) => c -> m -> ChannelRequest Message
EditMessage :: (HasID Channel c, HasID Message m) => c -> m -> EditMessageData -> ChannelRequest Message
DeleteMessage :: (HasID Channel c, HasID Message m) => c -> m -> ChannelRequest ()
BulkDeleteMessages :: (HasID Channel c, HasID Message m) => c -> [m] -> ChannelRequest ()
GetChannel :: (HasID Channel c) => c -> ChannelRequest Channel
ModifyChannel :: (HasID Channel c) => c -> ChannelUpdate -> ChannelRequest Channel
DeleteChannel :: (HasID Channel c) => c -> ChannelRequest ()
GetChannelMessages :: (HasID Channel c) => c -> Maybe ChannelMessagesFilter -> Maybe ChannelMessagesLimit -> ChannelRequest [Message]
CreateReaction :: (HasID Channel c, HasID Message m) => c -> m -> RawEmoji -> ChannelRequest ()
DeleteOwnReaction :: (HasID Channel c, HasID Message m) => c -> m -> RawEmoji -> ChannelRequest ()
DeleteUserReaction :: (HasID Channel c, HasID Message m, HasID User u) => c -> m -> RawEmoji -> u -> ChannelRequest ()
GetReactions :: (HasID Channel c, HasID Message m) => c -> m -> RawEmoji -> GetReactionsOptions -> ChannelRequest [User]
DeleteAllReactions :: (HasID Channel c, HasID Message m) => c -> m -> ChannelRequest ()
GetChannelInvites :: (HasID Channel c) => c -> ChannelRequest [Invite]
CreateChannelInvite :: (HasID Channel c) => c -> CreateChannelInviteOptions -> ChannelRequest Invite
EditChannelPermissions :: (HasID Channel c) => c -> Overwrite -> ChannelRequest ()
DeleteChannelPermission :: (HasID Channel c, HasID Overwrite o) => c -> o -> ChannelRequest ()
TriggerTyping :: (HasID Channel c) => c -> ChannelRequest ()
GetPinnedMessages :: (HasID Channel c) => c -> ChannelRequest [Message]
AddPinnedMessage :: (HasID Channel c, HasID Message m) => c -> m -> ChannelRequest ()
DeletePinnedMessage :: (HasID Channel c, HasID Message m) => c -> m -> ChannelRequest ()
GroupDMAddRecipient :: (HasID Channel c, HasID User u) => c -> u -> GroupDMAddRecipientOptions -> ChannelRequest ()
GroupDMRemoveRecipient :: (HasID Channel c, HasID User u) => c -> u -> ChannelRequest ()
baseRoute :: Snowflake Channel -> RouteBuilder _
baseRoute :: Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel,
AddRequiredInner (Lookup ('IDRequirement Channel) '[]))]
baseRoute Snowflake Channel
id =
RouteBuilder '[]
mkRouteBuilder RouteBuilder '[] -> S -> ConsRes S '[]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"channels" RouteBuilder '[] -> ID Channel -> ConsRes (ID Channel) '[]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @Channel
RouteBuilder
'[ '( 'IDRequirement Channel,
AddRequiredInner (Lookup ('IDRequirement Channel) '[]))]
-> (RouteBuilder
'[ '( 'IDRequirement Channel,
AddRequiredInner (Lookup ('IDRequirement Channel) '[]))]
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel,
AddRequiredInner (Lookup ('IDRequirement Channel) '[]))])
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel,
AddRequiredInner (Lookup ('IDRequirement Channel) '[]))]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel,
AddRequiredInner (Lookup ('IDRequirement Channel) '[]))]
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel,
AddRequiredInner (Lookup ('IDRequirement Channel) '[]))]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Channel
id
renderEmoji :: RawEmoji -> Text
renderEmoji :: RawEmoji -> Text
renderEmoji (UnicodeEmoji Text
e) = Text
e
renderEmoji (CustomEmoji Partial Emoji
e) = Partial Emoji
e Partial Emoji -> Optic' A_Lens NoIx (Partial Emoji) Text -> Text
forall (k :: OpticKind) (s :: OpticKind) (is :: IxList)
(a :: OpticKind).
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx (Partial Emoji) Text
#name Text -> Text -> Text
forall (a :: OpticKind). Semigroup a => a -> a -> a
<> Text
":" Text -> Text -> Text
forall (a :: OpticKind). Semigroup a => a -> a -> a
<> Snowflake Emoji -> Text
forall (a :: OpticKind). TextShow a => a -> Text
showt (Partial Emoji
e Partial Emoji
-> Optic' A_Lens NoIx (Partial Emoji) (Snowflake Emoji)
-> Snowflake Emoji
forall (k :: OpticKind) (s :: OpticKind) (is :: IxList)
(a :: OpticKind).
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx (Partial Emoji) (Snowflake Emoji)
#id)
instance Request (ChannelRequest a) where
type Result (ChannelRequest a) = a
route :: ChannelRequest a -> Route
route (CreateMessage (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
id) CreateMessageOptions
_) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
id RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"messages"
RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (CrosspostMessage (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
id) (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @Message -> Snowflake Message
mid)) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
id RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"messages" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID Message
-> ConsRes
(ID Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @Message
RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake Message
-> RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Message
mid
RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GetChannel (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
id)) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
id
RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (ModifyChannel (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
id) ChannelUpdate
_) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
id
RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (DeleteChannel (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
id)) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
id
RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GetChannelMessages (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
id) Maybe ChannelMessagesFilter
_ Maybe ChannelMessagesLimit
_) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
id RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"messages"
RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GetMessage (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @Message -> Snowflake Message
mid)) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"messages" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID Message
-> ConsRes
(ID Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @Message
RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake Message
-> RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Message
mid
RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (CreateReaction (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @Message -> Snowflake Message
mid) RawEmoji
emoji) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"messages" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID Message
-> ConsRes
(ID Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @Message RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"reactions" RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> PS "emoji"
-> ConsRes
(PS "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (s :: Symbol). PS s
PS @"emoji" RouteBuilder
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"@me"
RouteBuilder
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake Message
-> RouteBuilder
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Message
mid
RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& forall (s :: Symbol)
(reqs :: [(RequirementType, RouteRequirement)]).
KnownSymbol s =>
Text
-> RouteBuilder reqs
-> RouteBuilder ('( 'PSRequirement s, 'Satisfied) : reqs)
giveParam @"emoji" (RawEmoji -> Text
renderEmoji RawEmoji
emoji)
RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (DeleteOwnReaction (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @Message -> Snowflake Message
mid) RawEmoji
emoji) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"messages" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID Message
-> ConsRes
(ID Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @Message RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"reactions" RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> PS "emoji"
-> ConsRes
(PS "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (s :: Symbol). PS s
PS @"emoji" RouteBuilder
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"@me"
RouteBuilder
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake Message
-> RouteBuilder
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Message
mid
RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& forall (s :: Symbol)
(reqs :: [(RequirementType, RouteRequirement)]).
KnownSymbol s =>
Text
-> RouteBuilder reqs
-> RouteBuilder ('( 'PSRequirement s, 'Satisfied) : reqs)
giveParam @"emoji" (RawEmoji -> Text
renderEmoji RawEmoji
emoji)
RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (DeleteUserReaction (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @Message -> Snowflake Message
mid) RawEmoji
emoji (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @User -> Snowflake User
uid)) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"messages" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID Message
-> ConsRes
(ID Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @Message RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"reactions" RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> PS "emoji"
-> ConsRes
(PS "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (s :: Symbol). PS s
PS @"emoji" RouteBuilder
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID User
-> ConsRes
(ID User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @User
RouteBuilder
'[ '( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake Message
-> RouteBuilder
'[ '( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Message
mid
RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake User
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake User
uid
RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& forall (s :: Symbol)
(reqs :: [(RequirementType, RouteRequirement)]).
KnownSymbol s =>
Text
-> RouteBuilder reqs
-> RouteBuilder ('( 'PSRequirement s, 'Satisfied) : reqs)
giveParam @"emoji" (RawEmoji -> Text
renderEmoji RawEmoji
emoji)
RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GetReactions (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @Message -> Snowflake Message
mid) RawEmoji
emoji GetReactionsOptions
_) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"messages" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID Message
-> ConsRes
(ID Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @Message RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"reactions" RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> PS "emoji"
-> ConsRes
(PS "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (s :: Symbol). PS s
PS @"emoji"
RouteBuilder
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake Message
-> RouteBuilder
'[ '( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Message
mid
RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& forall (s :: Symbol)
(reqs :: [(RequirementType, RouteRequirement)]).
KnownSymbol s =>
Text
-> RouteBuilder reqs
-> RouteBuilder ('( 'PSRequirement s, 'Satisfied) : reqs)
giveParam @"emoji" (RawEmoji -> Text
renderEmoji RawEmoji
emoji)
RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'PSRequirement "emoji", 'Satisfied),
'( 'IDRequirement Message, 'Satisfied),
'( 'PSRequirement "emoji",
AddRequiredInner
(Lookup
('PSRequirement "emoji")
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (DeleteAllReactions (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @Message -> Snowflake Message
mid)) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"messages" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID Message
-> ConsRes
(ID Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @Message RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"reactions"
RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake Message
-> RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Message
mid
RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (EditMessage (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @Message -> Snowflake Message
mid) EditMessageData
_) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"messages" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID Message
-> ConsRes
(ID Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @Message
RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake Message
-> RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Message
mid
RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (DeleteMessage (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @Message -> Snowflake Message
mid)) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"messages" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID Message
-> ConsRes
(ID Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @Message
RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake Message
-> RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Message
mid
RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (BulkDeleteMessages (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) [m]
_) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"messages" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"bulk-delete"
RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GetChannelInvites (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid)) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"invites"
RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (CreateChannelInvite (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) CreateChannelInviteOptions
_) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"invites"
RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (EditChannelPermissions (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @Overwrite -> Snowflake Overwrite
oid)) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"permissions" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID Overwrite
-> ConsRes
(ID Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @Overwrite
RouteBuilder
'[ '( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Overwrite, 'Satisfied),
'( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement Overwrite, 'Satisfied),
'( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake Overwrite
-> RouteBuilder
'[ '( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Overwrite, 'Satisfied),
'( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Overwrite
oid
RouteBuilder
'[ '( 'IDRequirement Overwrite, 'Satisfied),
'( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Overwrite, 'Satisfied),
'( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Overwrite, 'Satisfied),
'( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (DeleteChannelPermission (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @Overwrite -> Snowflake Overwrite
oid)) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"permissions" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID Overwrite
-> ConsRes
(ID Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @Overwrite
RouteBuilder
'[ '( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Overwrite, 'Satisfied),
'( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement Overwrite, 'Satisfied),
'( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake Overwrite
-> RouteBuilder
'[ '( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Overwrite, 'Satisfied),
'( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Overwrite
oid
RouteBuilder
'[ '( 'IDRequirement Overwrite, 'Satisfied),
'( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Overwrite, 'Satisfied),
'( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Overwrite, 'Satisfied),
'( 'IDRequirement Overwrite,
AddRequiredInner
(Lookup
('IDRequirement Overwrite)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (TriggerTyping (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid)) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"typing"
RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GetPinnedMessages (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid)) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"pins"
RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (AddPinnedMessage (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @Message -> Snowflake Message
mid)) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"pins" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID Message
-> ConsRes
(ID Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @Message
RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake Message
-> RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Message
mid
RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (DeletePinnedMessage (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @Message -> Snowflake Message
mid)) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"pins" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID Message
-> ConsRes
(ID Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @Message
RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake Message
-> RouteBuilder
'[ '( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Message
mid
RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement Message, 'Satisfied),
'( 'IDRequirement Message,
AddRequiredInner
(Lookup
('IDRequirement Message)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GroupDMAddRecipient (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @User -> Snowflake User
uid) GroupDMAddRecipientOptions
_) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"recipients" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID User
-> ConsRes
(ID User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @User
RouteBuilder
'[ '( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake User
-> RouteBuilder
'[ '( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake User
uid
RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GroupDMRemoveRecipient (c -> Snowflake Channel
forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID -> Snowflake Channel
cid) (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @User -> Snowflake User
uid)) =
Snowflake Channel
-> RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
baseRoute Snowflake Channel
cid RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> S
-> ConsRes
S
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"recipients" RouteBuilder
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> ID User
-> ConsRes
(ID User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall (a :: OpticKind). ID a
forall {k :: OpticKind} (a :: k). ID a
ID @User
RouteBuilder
'[ '( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])
-> RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& Snowflake User
-> RouteBuilder
'[ '( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
forall (t :: OpticKind)
(reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake User
uid
RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> (RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route)
-> Route
forall (a :: OpticKind) (b :: OpticKind). a -> (a -> b) -> b
& RouteBuilder
'[ '( 'IDRequirement User, 'Satisfied),
'( 'IDRequirement User,
AddRequiredInner
(Lookup
('IDRequirement User)
'[ '( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)])),
'( 'IDRequirement Channel, 'Satisfied),
'( 'IDRequirement Channel, 'Required)]
-> Route
forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
action :: ChannelRequest a -> Url 'Https -> Option 'Https -> Req LbsResponse
action (CreateMessage c
_ CreateMessageOptions
cm) = \Url 'Https
u Option 'Https
o -> do
let filePart :: CreateMessageAttachment -> a -> PartM IO
filePart CreateMessageAttachment {Text
$sel:filename:CreateMessageAttachment :: CreateMessageAttachment -> Text
filename :: Text
filename, ByteString
$sel:content:CreateMessageAttachment :: CreateMessageAttachment -> ByteString
content :: ByteString
content} a
n =
(forall (m :: OpticKind -> OpticKind).
Applicative m =>
Text -> ByteString -> PartM m
partLBS @IO (String -> Text
T.pack (String -> Text) -> String -> Text
forall (a :: OpticKind) b. (a -> b) -> a -> b
$ String
"files[" String -> ShowS
forall (a :: OpticKind). Semigroup a => a -> a -> a
<> a -> String
forall (a :: OpticKind). Show a => a -> String
show a
n String -> ShowS
forall (a :: OpticKind). Semigroup a => a -> a -> a
<> String
"]") ByteString
content)
{ partFilename :: Maybe String
partFilename = String -> Maybe String
forall (a :: OpticKind). a -> Maybe a
Just (Text -> String
T.unpack Text
filename)
, partContentType :: Maybe MimeType
partContentType = MimeType -> Maybe MimeType
forall (a :: OpticKind). a -> Maybe a
Just (Text -> MimeType
defaultMimeLookup Text
filename)
}
attachmentPart :: CreateMessageAttachment -> Int -> CreateMessageAttachmentJson
attachmentPart CreateMessageAttachment {Text
$sel:filename:CreateMessageAttachment :: CreateMessageAttachment -> Text
filename :: Text
filename, Maybe Text
$sel:description:CreateMessageAttachment :: CreateMessageAttachment -> Maybe Text
description :: Maybe Text
description} Int
n =
Int -> Text -> Maybe Text -> CreateMessageAttachmentJson
CreateMessageAttachmentJson Int
n Text
filename Maybe Text
description
files :: [PartM IO]
files = (CreateMessageAttachment -> Int -> PartM IO)
-> [CreateMessageAttachment] -> [Int] -> [PartM IO]
forall (a :: OpticKind) (b :: OpticKind) (c :: OpticKind).
(a -> b -> c) -> [a] -> [b] -> [c]
zipWith CreateMessageAttachment -> Int -> PartM IO
forall {a :: OpticKind}.
Show a =>
CreateMessageAttachment -> a -> PartM IO
filePart ([CreateMessageAttachment]
-> Maybe [CreateMessageAttachment] -> [CreateMessageAttachment]
forall (a :: OpticKind). a -> Maybe a -> a
fromMaybe [] (Maybe [CreateMessageAttachment] -> [CreateMessageAttachment])
-> Maybe [CreateMessageAttachment] -> [CreateMessageAttachment]
forall (a :: OpticKind) b. (a -> b) -> a -> b
$ CreateMessageOptions
cm CreateMessageOptions
-> Optic'
A_Lens NoIx CreateMessageOptions (Maybe [CreateMessageAttachment])
-> Maybe [CreateMessageAttachment]
forall (k :: OpticKind) (s :: OpticKind) (is :: IxList)
(a :: OpticKind).
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic'
A_Lens NoIx CreateMessageOptions (Maybe [CreateMessageAttachment])
#attachments) [(Int
0 :: Int) ..]
attachments :: Maybe [CreateMessageAttachmentJson]
attachments = (\[CreateMessageAttachment]
a -> (CreateMessageAttachment -> Int -> CreateMessageAttachmentJson)
-> [CreateMessageAttachment]
-> [Int]
-> [CreateMessageAttachmentJson]
forall (a :: OpticKind) (b :: OpticKind) (c :: OpticKind).
(a -> b -> c) -> [a] -> [b] -> [c]
zipWith CreateMessageAttachment -> Int -> CreateMessageAttachmentJson
attachmentPart [CreateMessageAttachment]
a [Int
0 ..]) ([CreateMessageAttachment] -> [CreateMessageAttachmentJson])
-> Maybe [CreateMessageAttachment]
-> Maybe [CreateMessageAttachmentJson]
forall (f :: OpticKind -> OpticKind) (a :: OpticKind)
(b :: OpticKind).
Functor f =>
(a -> b) -> f a -> f b
<$> CreateMessageOptions
cm CreateMessageOptions
-> Optic'
A_Lens NoIx CreateMessageOptions (Maybe [CreateMessageAttachment])
-> Maybe [CreateMessageAttachment]
forall (k :: OpticKind) (s :: OpticKind) (is :: IxList)
(a :: OpticKind).
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic'
A_Lens NoIx CreateMessageOptions (Maybe [CreateMessageAttachment])
#attachments
jsonBody :: CreateMessageJson
jsonBody =
CreateMessageJson
{ $sel:content:CreateMessageJson :: Maybe Text
content = CreateMessageOptions
cm CreateMessageOptions
-> Optic' A_Lens NoIx CreateMessageOptions (Maybe Text)
-> Maybe Text
forall (k :: OpticKind) (s :: OpticKind) (is :: IxList)
(a :: OpticKind).
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx CreateMessageOptions (Maybe Text)
#content
, $sel:nonce:CreateMessageJson :: Maybe Text
nonce = CreateMessageOptions
cm CreateMessageOptions
-> Optic' A_Lens NoIx CreateMessageOptions (Maybe Text)
-> Maybe Text
forall (k :: OpticKind) (s :: OpticKind) (is :: IxList)
(a :: OpticKind).
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx CreateMessageOptions (Maybe Text)
#nonce
, $sel:tts:CreateMessageJson :: Maybe Bool
tts = CreateMessageOptions
cm CreateMessageOptions
-> Optic' A_Lens NoIx CreateMessageOptions (Maybe Bool)
-> Maybe Bool
forall (k :: OpticKind) (s :: OpticKind) (is :: IxList)
(a :: OpticKind).
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx CreateMessageOptions (Maybe Bool)
#tts
, $sel:embeds:CreateMessageJson :: Maybe [Embed]
embeds = CreateMessageOptions
cm CreateMessageOptions
-> Optic' A_Lens NoIx CreateMessageOptions (Maybe [Embed])
-> Maybe [Embed]
forall (k :: OpticKind) (s :: OpticKind) (is :: IxList)
(a :: OpticKind).
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx CreateMessageOptions (Maybe [Embed])
#embeds
, $sel:allowedMentions:CreateMessageJson :: Maybe AllowedMentions
allowedMentions = CreateMessageOptions
cm CreateMessageOptions
-> Optic' A_Lens NoIx CreateMessageOptions (Maybe AllowedMentions)
-> Maybe AllowedMentions
forall (k :: OpticKind) (s :: OpticKind) (is :: IxList)
(a :: OpticKind).
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx CreateMessageOptions (Maybe AllowedMentions)
#allowedMentions
, $sel:messageReference:CreateMessageJson :: Maybe MessageReference
messageReference = CreateMessageOptions
cm CreateMessageOptions
-> Optic' A_Lens NoIx CreateMessageOptions (Maybe MessageReference)
-> Maybe MessageReference
forall (k :: OpticKind) (s :: OpticKind) (is :: IxList)
(a :: OpticKind).
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx CreateMessageOptions (Maybe MessageReference)
#messageReference
, $sel:components:CreateMessageJson :: Maybe [Component]
components = CreateMessageOptions
cm CreateMessageOptions
-> Optic' A_Lens NoIx CreateMessageOptions (Maybe [Component])
-> Maybe [Component]
forall (k :: OpticKind) (s :: OpticKind) (is :: IxList)
(a :: OpticKind).
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx CreateMessageOptions (Maybe [Component])
#components
, $sel:attachments:CreateMessageJson :: Maybe [CreateMessageAttachmentJson]
attachments = Maybe [CreateMessageAttachmentJson]
attachments
}
ReqBodyMultipart
body <- [PartM IO] -> Req ReqBodyMultipart
forall (m :: OpticKind -> OpticKind).
MonadIO m =>
[PartM IO] -> m ReqBodyMultipart
reqBodyMultipart (Text -> ByteString -> PartM IO
forall (m :: OpticKind -> OpticKind).
Applicative m =>
Text -> ByteString -> PartM m
partLBS Text
"payload_json" (CreateMessageJson -> ByteString
forall (a :: OpticKind). ToJSON a => a -> ByteString
Aeson.encode CreateMessageJson
jsonBody) PartM IO -> [PartM IO] -> [PartM IO]
forall (a :: OpticKind). a -> [a] -> [a]
: [PartM IO]
files)
ReqBodyMultipart -> Url 'Https -> Option 'Https -> Req LbsResponse
forall (a :: OpticKind).
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
postWith' ReqBodyMultipart
body Url 'Https
u Option 'Https
o
action (CrosspostMessage c
_ m
_) = Url 'Https -> Option 'Https -> Req LbsResponse
postEmpty
action (GetChannel c
_) = Url 'Https -> Option 'Https -> Req LbsResponse
getWith
action (ModifyChannel c
_ ChannelUpdate
p) = ReqBodyJson ChannelUpdate
-> Url 'Https -> Option 'Https -> Req LbsResponse
forall (a :: OpticKind).
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
patchWith' (ChannelUpdate -> ReqBodyJson ChannelUpdate
forall (a :: OpticKind). a -> ReqBodyJson a
ReqBodyJson ChannelUpdate
p)
action (DeleteChannel c
_) = Url 'Https -> Option 'Https -> Req LbsResponse
deleteWith
action (GetChannelMessages c
_ (Just (ChannelMessagesAround (Snowflake Message -> Word64
forall (t :: OpticKind). Snowflake t -> Word64
fromSnowflake -> Word64
a))) Maybe ChannelMessagesLimit
l) =
Option 'Https -> Url 'Https -> Option 'Https -> Req LbsResponse
getWithP (Text
"around" Text -> Word64 -> Option 'Https
forall (param :: OpticKind) (a :: OpticKind).
(QueryParam param, ToHttpApiData a) =>
Text -> a -> param
=: Word64
a Option 'Https -> Option 'Https -> Option 'Https
forall (a :: OpticKind). Semigroup a => a -> a -> a
<> Text
"limit" Text -> Maybe Integer -> Option 'Https
forall (a :: OpticKind).
ToHttpApiData a =>
Text -> Maybe a -> Option 'Https
=:? (Maybe ChannelMessagesLimit
l Maybe ChannelMessagesLimit
-> Optic' A_Prism NoIx (Maybe ChannelMessagesLimit) Integer
-> Maybe Integer
forall (k :: OpticKind) (s :: OpticKind) (is :: IxList)
(a :: OpticKind).
Is k An_AffineFold =>
s -> Optic' k is s a -> Maybe a
^? Prism
(Maybe ChannelMessagesLimit)
(Maybe ChannelMessagesLimit)
ChannelMessagesLimit
ChannelMessagesLimit
forall (a :: OpticKind) (b :: OpticKind).
Prism (Maybe a) (Maybe b) a b
_Just Prism
(Maybe ChannelMessagesLimit)
(Maybe ChannelMessagesLimit)
ChannelMessagesLimit
ChannelMessagesLimit
-> Optic
An_Iso
NoIx
ChannelMessagesLimit
ChannelMessagesLimit
Integer
Integer
-> Optic' A_Prism NoIx (Maybe ChannelMessagesLimit) Integer
forall (k :: OpticKind) (l :: OpticKind) (m :: OpticKind)
(is :: IxList) (js :: IxList) (ks :: IxList) (s :: OpticKind)
(t :: OpticKind) (u :: OpticKind) (v :: OpticKind) (a :: OpticKind)
(b :: OpticKind).
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
An_Iso
NoIx
ChannelMessagesLimit
ChannelMessagesLimit
Integer
Integer
#limit))
action (GetChannelMessages c
_ (Just (ChannelMessagesBefore (Snowflake Message -> Word64
forall (t :: OpticKind). Snowflake t -> Word64
fromSnowflake -> Word64
a))) Maybe ChannelMessagesLimit
l) =
Option 'Https -> Url 'Https -> Option 'Https -> Req LbsResponse
getWithP (Text
"before" Text -> Word64 -> Option 'Https
forall (param :: OpticKind) (a :: OpticKind).
(QueryParam param, ToHttpApiData a) =>
Text -> a -> param
=: Word64
a Option 'Https -> Option 'Https -> Option 'Https
forall (a :: OpticKind). Semigroup a => a -> a -> a
<> Text
"limit" Text -> Maybe Integer -> Option 'Https
forall (a :: OpticKind).
ToHttpApiData a =>
Text -> Maybe a -> Option 'Https
=:? (Maybe ChannelMessagesLimit
l Maybe ChannelMessagesLimit
-> Optic' A_Prism NoIx (Maybe ChannelMessagesLimit) Integer
-> Maybe Integer
forall (k :: OpticKind) (s :: OpticKind) (is :: IxList)
(a :: OpticKind).
Is k An_AffineFold =>
s -> Optic' k is s a -> Maybe a
^? Prism
(Maybe ChannelMessagesLimit)
(Maybe ChannelMessagesLimit)
ChannelMessagesLimit
ChannelMessagesLimit
forall (a :: OpticKind) (b :: OpticKind).
Prism (Maybe a) (Maybe b) a b
_Just Prism
(Maybe ChannelMessagesLimit)
(Maybe ChannelMessagesLimit)
ChannelMessagesLimit
ChannelMessagesLimit
-> Optic
An_Iso
NoIx
ChannelMessagesLimit
ChannelMessagesLimit
Integer
Integer
-> Optic' A_Prism NoIx (Maybe ChannelMessagesLimit) Integer
forall (k :: OpticKind) (l :: OpticKind) (m :: OpticKind)
(is :: IxList) (js :: IxList) (ks :: IxList) (s :: OpticKind)
(t :: OpticKind) (u :: OpticKind) (v :: OpticKind) (a :: OpticKind)
(b :: OpticKind).
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
An_Iso
NoIx
ChannelMessagesLimit
ChannelMessagesLimit
Integer
Integer
#limit))
action (GetChannelMessages c
_ (Just (ChannelMessagesAfter (Snowflake Message -> Word64
forall (t :: OpticKind). Snowflake t -> Word64
fromSnowflake -> Word64
a))) Maybe ChannelMessagesLimit
l) =
Option 'Https -> Url 'Https -> Option 'Https -> Req LbsResponse
getWithP (Text
"after" Text -> Word64 -> Option 'Https
forall (param :: OpticKind) (a :: OpticKind).
(QueryParam param, ToHttpApiData a) =>
Text -> a -> param
=: Word64
a Option 'Https -> Option 'Https -> Option 'Https
forall (a :: OpticKind). Semigroup a => a -> a -> a
<> Text
"limit" Text -> Maybe Integer -> Option 'Https
forall (a :: OpticKind).
ToHttpApiData a =>
Text -> Maybe a -> Option 'Https
=:? (Maybe ChannelMessagesLimit
l Maybe ChannelMessagesLimit
-> Optic' A_Prism NoIx (Maybe ChannelMessagesLimit) Integer
-> Maybe Integer
forall (k :: OpticKind) (s :: OpticKind) (is :: IxList)
(a :: OpticKind).
Is k An_AffineFold =>
s -> Optic' k is s a -> Maybe a
^? Prism
(Maybe ChannelMessagesLimit)
(Maybe ChannelMessagesLimit)
ChannelMessagesLimit
ChannelMessagesLimit
forall (a :: OpticKind) (b :: OpticKind).
Prism (Maybe a) (Maybe b) a b
_Just Prism
(Maybe ChannelMessagesLimit)
(Maybe ChannelMessagesLimit)
ChannelMessagesLimit
ChannelMessagesLimit
-> Optic
An_Iso
NoIx
ChannelMessagesLimit
ChannelMessagesLimit
Integer
Integer
-> Optic' A_Prism NoIx (Maybe ChannelMessagesLimit) Integer
forall (k :: OpticKind) (l :: OpticKind) (m :: OpticKind)
(is :: IxList) (js :: IxList) (ks :: IxList) (s :: OpticKind)
(t :: OpticKind) (u :: OpticKind) (v :: OpticKind) (a :: OpticKind)
(b :: OpticKind).
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
An_Iso
NoIx
ChannelMessagesLimit
ChannelMessagesLimit
Integer
Integer
#limit))
action (GetChannelMessages c
_ Maybe ChannelMessagesFilter
Nothing Maybe ChannelMessagesLimit
l) = Option 'Https -> Url 'Https -> Option 'Https -> Req LbsResponse
getWithP (Text
"limit" Text -> Maybe Integer -> Option 'Https
forall (a :: OpticKind).
ToHttpApiData a =>
Text -> Maybe a -> Option 'Https
=:? (Maybe ChannelMessagesLimit
l Maybe ChannelMessagesLimit
-> Optic' A_Prism NoIx (Maybe ChannelMessagesLimit) Integer
-> Maybe Integer
forall (k :: OpticKind) (s :: OpticKind) (is :: IxList)
(a :: OpticKind).
Is k An_AffineFold =>
s -> Optic' k is s a -> Maybe a
^? Prism
(Maybe ChannelMessagesLimit)
(Maybe ChannelMessagesLimit)
ChannelMessagesLimit
ChannelMessagesLimit
forall (a :: OpticKind) (b :: OpticKind).
Prism (Maybe a) (Maybe b) a b
_Just Prism
(Maybe ChannelMessagesLimit)
(Maybe ChannelMessagesLimit)
ChannelMessagesLimit
ChannelMessagesLimit
-> Optic
An_Iso
NoIx
ChannelMessagesLimit
ChannelMessagesLimit
Integer
Integer
-> Optic' A_Prism NoIx (Maybe ChannelMessagesLimit) Integer
forall (k :: OpticKind) (l :: OpticKind) (m :: OpticKind)
(is :: IxList) (js :: IxList) (ks :: IxList) (s :: OpticKind)
(t :: OpticKind) (u :: OpticKind) (v :: OpticKind) (a :: OpticKind)
(b :: OpticKind).
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic
An_Iso
NoIx
ChannelMessagesLimit
ChannelMessagesLimit
Integer
Integer
#limit))
action (GetMessage c
_ m
_) = Url 'Https -> Option 'Https -> Req LbsResponse
getWith
action CreateReaction {} = Url 'Https -> Option 'Https -> Req LbsResponse
putEmpty
action DeleteOwnReaction {} = Url 'Https -> Option 'Https -> Req LbsResponse
deleteWith
action DeleteUserReaction {} = Url 'Https -> Option 'Https -> Req LbsResponse
deleteWith
action (GetReactions c
_ m
_ RawEmoji
_ GetReactionsOptions {Maybe (Snowflake User)
$sel:before:GetReactionsOptions :: GetReactionsOptions -> Maybe (Snowflake User)
before :: Maybe (Snowflake User)
before, Maybe (Snowflake User)
$sel:after:GetReactionsOptions :: GetReactionsOptions -> Maybe (Snowflake User)
after :: Maybe (Snowflake User)
after, Maybe Integer
$sel:limit:GetReactionsOptions :: GetReactionsOptions -> Maybe Integer
limit :: Maybe Integer
limit}) =
Option 'Https -> Url 'Https -> Option 'Https -> Req LbsResponse
getWithP
( Text
"before" Text -> Maybe Word64 -> Option 'Https
forall (a :: OpticKind).
ToHttpApiData a =>
Text -> Maybe a -> Option 'Https
=:? (Snowflake User -> Word64
forall (t :: OpticKind). Snowflake t -> Word64
fromSnowflake (Snowflake User -> Word64)
-> Maybe (Snowflake User) -> Maybe Word64
forall (f :: OpticKind -> OpticKind) (a :: OpticKind)
(b :: OpticKind).
Functor f =>
(a -> b) -> f a -> f b
<$> Maybe (Snowflake User)
before)
Option 'Https -> Option 'Https -> Option 'Https
forall (a :: OpticKind). Semigroup a => a -> a -> a
<> Text
"after" Text -> Maybe Word64 -> Option 'Https
forall (a :: OpticKind).
ToHttpApiData a =>
Text -> Maybe a -> Option 'Https
=:? (Snowflake User -> Word64
forall (t :: OpticKind). Snowflake t -> Word64
fromSnowflake (Snowflake User -> Word64)
-> Maybe (Snowflake User) -> Maybe Word64
forall (f :: OpticKind -> OpticKind) (a :: OpticKind)
(b :: OpticKind).
Functor f =>
(a -> b) -> f a -> f b
<$> Maybe (Snowflake User)
after)
Option 'Https -> Option 'Https -> Option 'Https
forall (a :: OpticKind). Semigroup a => a -> a -> a
<> Text
"limit" Text -> Maybe Integer -> Option 'Https
forall (a :: OpticKind).
ToHttpApiData a =>
Text -> Maybe a -> Option 'Https
=:? Maybe Integer
limit
)
action (DeleteAllReactions c
_ m
_) = Url 'Https -> Option 'Https -> Req LbsResponse
deleteWith
action (EditMessage c
_ m
_ EditMessageData
o) = ReqBodyJson EditMessageData
-> Url 'Https -> Option 'Https -> Req LbsResponse
forall (a :: OpticKind).
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
patchWith' (EditMessageData -> ReqBodyJson EditMessageData
forall (a :: OpticKind). a -> ReqBodyJson a
ReqBodyJson EditMessageData
o)
action (DeleteMessage c
_ m
_) = Url 'Https -> Option 'Https -> Req LbsResponse
deleteWith
action (BulkDeleteMessages c
_ ((m -> Snowflake Message) -> [m] -> [Snowflake Message]
forall (a :: OpticKind) (b :: OpticKind). (a -> b) -> [a] -> [b]
map (forall (b :: OpticKind) (a :: OpticKind).
HasID b a =>
a -> Snowflake b
getID @Message) -> [Snowflake Message]
ids)) = ReqBodyJson Value -> Url 'Https -> Option 'Https -> Req LbsResponse
forall (a :: OpticKind).
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
postWith' (Value -> ReqBodyJson Value
forall (a :: OpticKind). a -> ReqBodyJson a
ReqBodyJson (Value -> ReqBodyJson Value) -> Value -> ReqBodyJson Value
forall (a :: OpticKind) b. (a -> b) -> a -> b
$ [(Key, Value)] -> Value
Aeson.object [Key
"messages" Key -> [Snowflake Message] -> (Key, Value)
forall (kv :: OpticKind) (v :: OpticKind).
(KeyValue kv, ToJSON v) =>
Key -> v -> kv
forall (v :: OpticKind). ToJSON v => Key -> v -> (Key, Value)
Aeson..= [Snowflake Message]
ids])
action (GetChannelInvites c
_) = Url 'Https -> Option 'Https -> Req LbsResponse
getWith
action (CreateChannelInvite c
_ CreateChannelInviteOptions
o) = ReqBodyJson CreateChannelInviteOptions
-> Url 'Https -> Option 'Https -> Req LbsResponse
forall (a :: OpticKind).
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
postWith' (CreateChannelInviteOptions
-> ReqBodyJson CreateChannelInviteOptions
forall (a :: OpticKind). a -> ReqBodyJson a
ReqBodyJson CreateChannelInviteOptions
o)
action (EditChannelPermissions c
_ Overwrite
o) = ReqBodyJson Overwrite
-> Url 'Https -> Option 'Https -> Req LbsResponse
forall (a :: OpticKind).
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
putWith' (Overwrite -> ReqBodyJson Overwrite
forall (a :: OpticKind). a -> ReqBodyJson a
ReqBodyJson Overwrite
o)
action (DeleteChannelPermission c
_ o
_) = Url 'Https -> Option 'Https -> Req LbsResponse
deleteWith
action (TriggerTyping c
_) = Url 'Https -> Option 'Https -> Req LbsResponse
postEmpty
action (GetPinnedMessages c
_) = Url 'Https -> Option 'Https -> Req LbsResponse
getWith
action (AddPinnedMessage c
_ m
_) = Url 'Https -> Option 'Https -> Req LbsResponse
putEmpty
action (DeletePinnedMessage c
_ m
_) = Url 'Https -> Option 'Https -> Req LbsResponse
deleteWith
action (GroupDMAddRecipient c
_ u
_ GroupDMAddRecipientOptions
o) = ReqBodyJson GroupDMAddRecipientOptions
-> Url 'Https -> Option 'Https -> Req LbsResponse
forall (a :: OpticKind).
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
putWith' (GroupDMAddRecipientOptions
-> ReqBodyJson GroupDMAddRecipientOptions
forall (a :: OpticKind). a -> ReqBodyJson a
ReqBodyJson GroupDMAddRecipientOptions
o)
action (GroupDMRemoveRecipient c
_ u
_) = Url 'Https -> Option 'Https -> Req LbsResponse
deleteWith