{-# LANGUAGE TemplateHaskell #-}
module Calamity.HTTP.Guild (
GuildRequest (..),
CreateGuildData (..),
ModifyGuildData (..),
ChannelCreateData (..),
ChannelPosition (..),
ListMembersOptions (..),
AddGuildMemberData (..),
ModifyGuildMemberData,
modifyGuildMemberNick,
modifyGuildMemberRoles,
modifyGuildMemberMute,
modifyGuildMemberDeaf,
modifyGuildMemberChannelID,
CreateGuildBanData (..),
ModifyGuildRoleData,
modifyGuildRoleName,
modifyGuildRolePermissions,
modifyGuildRoleColour,
modifyGuildRoleHoist,
modifyGuildRoleMentionable,
ModifyGuildRolePositionsData (..),
) where
import Calamity.HTTP.Internal.Request
import Calamity.HTTP.Internal.Route
import Calamity.Internal.IntColour
import Calamity.Internal.Utils (CalamityToJSON (..), CalamityToJSON' (..), (.=), (.?=))
import Calamity.Types.Model.Channel
import Calamity.Types.Model.Guild
import Calamity.Types.Model.User
import Calamity.Types.Model.Voice
import Calamity.Types.Snowflake
import qualified Data.Aeson as Aeson
import qualified Data.Aeson.KeyMap as K
import Data.Colour (Colour)
import Data.Default.Class
import Data.Text (Text)
import Network.HTTP.Req
import Optics
data CreateGuildData = CreateGuildData
{ CreateGuildData -> Text
name :: Text
, CreateGuildData -> Text
region :: Text
, CreateGuildData -> Text
icon :: Text
, CreateGuildData -> Integer
verificationLevel :: Integer
, CreateGuildData -> Integer
defaultMessageNotifications :: Integer
, CreateGuildData -> Integer
explicitContentFilter :: Integer
, CreateGuildData -> [Role]
roles :: [Role]
, CreateGuildData -> [Partial Channel]
channels :: [Partial Channel]
}
deriving (Int -> CreateGuildData -> ShowS
[CreateGuildData] -> ShowS
CreateGuildData -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateGuildData] -> ShowS
$cshowList :: [CreateGuildData] -> ShowS
show :: CreateGuildData -> String
$cshow :: CreateGuildData -> String
showsPrec :: Int -> CreateGuildData -> ShowS
$cshowsPrec :: Int -> CreateGuildData -> ShowS
Show)
deriving ([CreateGuildData] -> Encoding
[CreateGuildData] -> Value
CreateGuildData -> Encoding
CreateGuildData -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [CreateGuildData] -> Encoding
$ctoEncodingList :: [CreateGuildData] -> Encoding
toJSONList :: [CreateGuildData] -> Value
$ctoJSONList :: [CreateGuildData] -> Value
toEncoding :: CreateGuildData -> Encoding
$ctoEncoding :: CreateGuildData -> Encoding
toJSON :: CreateGuildData -> Value
$ctoJSON :: CreateGuildData -> Value
Aeson.ToJSON) via CalamityToJSON CreateGuildData
instance CalamityToJSON' CreateGuildData where
toPairs :: forall kv. KeyValue kv => CreateGuildData -> [Maybe kv]
toPairs CreateGuildData {Integer
[Partial Channel]
[Role]
Text
channels :: [Partial Channel]
roles :: [Role]
explicitContentFilter :: Integer
defaultMessageNotifications :: Integer
verificationLevel :: Integer
icon :: Text
region :: Text
name :: Text
$sel:channels:CreateGuildData :: CreateGuildData -> [Partial Channel]
$sel:roles:CreateGuildData :: CreateGuildData -> [Role]
$sel:explicitContentFilter:CreateGuildData :: CreateGuildData -> Integer
$sel:defaultMessageNotifications:CreateGuildData :: CreateGuildData -> Integer
$sel:verificationLevel:CreateGuildData :: CreateGuildData -> Integer
$sel:icon:CreateGuildData :: CreateGuildData -> Text
$sel:region:CreateGuildData :: CreateGuildData -> Text
$sel:name:CreateGuildData :: CreateGuildData -> Text
..} =
[ Key
"name" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= Text
name
, Key
"region" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= Text
region
, Key
"icon" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= Text
icon
, Key
"verification_level" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= Integer
verificationLevel
, Key
"default_message_notifications" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= Integer
defaultMessageNotifications
, Key
"explicit_content_filter" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= Integer
explicitContentFilter
, Key
"roles" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= [Role]
roles
, Key
"channels" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= [Partial Channel]
channels
]
data ModifyGuildData = ModifyGuildData
{ ModifyGuildData -> Maybe Text
name :: Maybe Text
, ModifyGuildData -> Maybe Text
region :: Maybe Text
, ModifyGuildData -> Maybe Text
icon :: Maybe Text
, ModifyGuildData -> Maybe Integer
verificationLevel :: Maybe Integer
, ModifyGuildData -> Maybe Integer
defaultMessageNotifications :: Maybe Integer
, ModifyGuildData -> Maybe Integer
explicitContentFilter :: Maybe Integer
, ModifyGuildData -> Maybe (Snowflake GuildChannel)
afkChannelID :: Maybe (Snowflake GuildChannel)
, ModifyGuildData -> Maybe Integer
afkTimeout :: Maybe Integer
, ModifyGuildData -> Maybe (Snowflake User)
ownerID :: Maybe (Snowflake User)
, ModifyGuildData -> Maybe Text
splash :: Maybe Text
, ModifyGuildData -> Maybe Text
banner :: Maybe Text
, ModifyGuildData -> Maybe (Snowflake GuildChannel)
systemChannelID :: Maybe (Snowflake GuildChannel)
}
deriving (Int -> ModifyGuildData -> ShowS
[ModifyGuildData] -> ShowS
ModifyGuildData -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModifyGuildData] -> ShowS
$cshowList :: [ModifyGuildData] -> ShowS
show :: ModifyGuildData -> String
$cshow :: ModifyGuildData -> String
showsPrec :: Int -> ModifyGuildData -> ShowS
$cshowsPrec :: Int -> ModifyGuildData -> ShowS
Show)
deriving ([ModifyGuildData] -> Encoding
[ModifyGuildData] -> Value
ModifyGuildData -> Encoding
ModifyGuildData -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [ModifyGuildData] -> Encoding
$ctoEncodingList :: [ModifyGuildData] -> Encoding
toJSONList :: [ModifyGuildData] -> Value
$ctoJSONList :: [ModifyGuildData] -> Value
toEncoding :: ModifyGuildData -> Encoding
$ctoEncoding :: ModifyGuildData -> Encoding
toJSON :: ModifyGuildData -> Value
$ctoJSON :: ModifyGuildData -> Value
Aeson.ToJSON) via CalamityToJSON ModifyGuildData
instance Default ModifyGuildData where
def :: ModifyGuildData
def =
Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Integer
-> Maybe Integer
-> Maybe Integer
-> Maybe (Snowflake GuildChannel)
-> Maybe Integer
-> Maybe (Snowflake User)
-> Maybe Text
-> Maybe Text
-> Maybe (Snowflake GuildChannel)
-> ModifyGuildData
ModifyGuildData
forall a. Maybe a
Nothing
forall a. Maybe a
Nothing
forall a. Maybe a
Nothing
forall a. Maybe a
Nothing
forall a. Maybe a
Nothing
forall a. Maybe a
Nothing
forall a. Maybe a
Nothing
forall a. Maybe a
Nothing
forall a. Maybe a
Nothing
forall a. Maybe a
Nothing
forall a. Maybe a
Nothing
forall a. Maybe a
Nothing
instance CalamityToJSON' ModifyGuildData where
toPairs :: forall kv. KeyValue kv => ModifyGuildData -> [Maybe kv]
toPairs ModifyGuildData {Maybe Integer
Maybe Text
Maybe (Snowflake User)
Maybe (Snowflake GuildChannel)
systemChannelID :: Maybe (Snowflake GuildChannel)
banner :: Maybe Text
splash :: Maybe Text
ownerID :: Maybe (Snowflake User)
afkTimeout :: Maybe Integer
afkChannelID :: Maybe (Snowflake GuildChannel)
explicitContentFilter :: Maybe Integer
defaultMessageNotifications :: Maybe Integer
verificationLevel :: Maybe Integer
icon :: Maybe Text
region :: Maybe Text
name :: Maybe Text
$sel:systemChannelID:ModifyGuildData :: ModifyGuildData -> Maybe (Snowflake GuildChannel)
$sel:banner:ModifyGuildData :: ModifyGuildData -> Maybe Text
$sel:splash:ModifyGuildData :: ModifyGuildData -> Maybe Text
$sel:ownerID:ModifyGuildData :: ModifyGuildData -> Maybe (Snowflake User)
$sel:afkTimeout:ModifyGuildData :: ModifyGuildData -> Maybe Integer
$sel:afkChannelID:ModifyGuildData :: ModifyGuildData -> Maybe (Snowflake GuildChannel)
$sel:explicitContentFilter:ModifyGuildData :: ModifyGuildData -> Maybe Integer
$sel:defaultMessageNotifications:ModifyGuildData :: ModifyGuildData -> Maybe Integer
$sel:verificationLevel:ModifyGuildData :: ModifyGuildData -> Maybe Integer
$sel:icon:ModifyGuildData :: ModifyGuildData -> Maybe Text
$sel:region:ModifyGuildData :: ModifyGuildData -> Maybe Text
$sel:name:ModifyGuildData :: ModifyGuildData -> Maybe Text
..} =
[ Key
"name" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Text
name
, Key
"region" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Text
region
, Key
"icon" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Text
icon
, Key
"verification_level" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Integer
verificationLevel
, Key
"default_message_notifications" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Integer
defaultMessageNotifications
, Key
"explicit_content_filter" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Integer
explicitContentFilter
, Key
"afk_timeout" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Integer
afkTimeout
, Key
"owner_id" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe (Snowflake User)
ownerID
, Key
"splash" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Text
splash
, Key
"banner" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Text
banner
, Key
"system_channel_id" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe (Snowflake GuildChannel)
systemChannelID
]
data ChannelCreateData = ChannelCreateData
{ ChannelCreateData -> Text
name :: Text
, ChannelCreateData -> Maybe ChannelType
type_ :: Maybe ChannelType
, ChannelCreateData -> Maybe Text
topic :: Maybe Text
, ChannelCreateData -> Maybe Integer
bitrate :: Maybe Integer
, ChannelCreateData -> Maybe Integer
userLimit :: Maybe Integer
, ChannelCreateData -> Maybe Integer
rateLimitPerUser :: Maybe Integer
, ChannelCreateData -> Maybe Integer
position :: Maybe Integer
, ChannelCreateData -> Maybe [Overwrite]
permissionOverwrites :: Maybe [Overwrite]
, ChannelCreateData -> Maybe (Snowflake Category)
parentID :: Maybe (Snowflake Category)
, ChannelCreateData -> Maybe Bool
nsfw :: Maybe Bool
}
deriving (Int -> ChannelCreateData -> ShowS
[ChannelCreateData] -> ShowS
ChannelCreateData -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ChannelCreateData] -> ShowS
$cshowList :: [ChannelCreateData] -> ShowS
show :: ChannelCreateData -> String
$cshow :: ChannelCreateData -> String
showsPrec :: Int -> ChannelCreateData -> ShowS
$cshowsPrec :: Int -> ChannelCreateData -> ShowS
Show)
deriving ([ChannelCreateData] -> Encoding
[ChannelCreateData] -> Value
ChannelCreateData -> Encoding
ChannelCreateData -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [ChannelCreateData] -> Encoding
$ctoEncodingList :: [ChannelCreateData] -> Encoding
toJSONList :: [ChannelCreateData] -> Value
$ctoJSONList :: [ChannelCreateData] -> Value
toEncoding :: ChannelCreateData -> Encoding
$ctoEncoding :: ChannelCreateData -> Encoding
toJSON :: ChannelCreateData -> Value
$ctoJSON :: ChannelCreateData -> Value
Aeson.ToJSON) via CalamityToJSON ChannelCreateData
instance CalamityToJSON' ChannelCreateData where
toPairs :: forall kv. KeyValue kv => ChannelCreateData -> [Maybe kv]
toPairs ChannelCreateData {Maybe Bool
Maybe Integer
Maybe [Overwrite]
Maybe Text
Maybe ChannelType
Maybe (Snowflake Category)
Text
nsfw :: Maybe Bool
parentID :: Maybe (Snowflake Category)
permissionOverwrites :: Maybe [Overwrite]
position :: Maybe Integer
rateLimitPerUser :: Maybe Integer
userLimit :: Maybe Integer
bitrate :: Maybe Integer
topic :: Maybe Text
type_ :: Maybe ChannelType
name :: Text
$sel:nsfw:ChannelCreateData :: ChannelCreateData -> Maybe Bool
$sel:parentID:ChannelCreateData :: ChannelCreateData -> Maybe (Snowflake Category)
$sel:permissionOverwrites:ChannelCreateData :: ChannelCreateData -> Maybe [Overwrite]
$sel:position:ChannelCreateData :: ChannelCreateData -> Maybe Integer
$sel:rateLimitPerUser:ChannelCreateData :: ChannelCreateData -> Maybe Integer
$sel:userLimit:ChannelCreateData :: ChannelCreateData -> Maybe Integer
$sel:bitrate:ChannelCreateData :: ChannelCreateData -> Maybe Integer
$sel:topic:ChannelCreateData :: ChannelCreateData -> Maybe Text
$sel:type_:ChannelCreateData :: ChannelCreateData -> Maybe ChannelType
$sel:name:ChannelCreateData :: ChannelCreateData -> Text
..} =
[ Key
"name" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= Text
name
, Key
"type" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe ChannelType
type_
, Key
"topic" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Text
topic
, Key
"bitrate" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Integer
bitrate
, Key
"user_limit" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Integer
userLimit
, Key
"rate_limit_per_user" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Integer
rateLimitPerUser
, Key
"position" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Integer
position
, Key
"permission_overwrites" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe [Overwrite]
permissionOverwrites
, Key
"parent_id" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe (Snowflake Category)
parentID
, Key
"nsfw" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Bool
nsfw
]
data ChannelPosition = ChannelPosition
{ ChannelPosition -> Snowflake GuildChannel
id :: Snowflake GuildChannel
, ChannelPosition -> Maybe Integer
position :: Maybe Integer
, ChannelPosition -> Maybe Bool
lockPermissions :: Maybe Bool
, ChannelPosition -> Snowflake GuildChannel
parentID :: Snowflake GuildChannel
}
deriving (Int -> ChannelPosition -> ShowS
[ChannelPosition] -> ShowS
ChannelPosition -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ChannelPosition] -> ShowS
$cshowList :: [ChannelPosition] -> ShowS
show :: ChannelPosition -> String
$cshow :: ChannelPosition -> String
showsPrec :: Int -> ChannelPosition -> ShowS
$cshowsPrec :: Int -> ChannelPosition -> ShowS
Show)
deriving ([ChannelPosition] -> Encoding
[ChannelPosition] -> Value
ChannelPosition -> Encoding
ChannelPosition -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [ChannelPosition] -> Encoding
$ctoEncodingList :: [ChannelPosition] -> Encoding
toJSONList :: [ChannelPosition] -> Value
$ctoJSONList :: [ChannelPosition] -> Value
toEncoding :: ChannelPosition -> Encoding
$ctoEncoding :: ChannelPosition -> Encoding
toJSON :: ChannelPosition -> Value
$ctoJSON :: ChannelPosition -> Value
Aeson.ToJSON) via CalamityToJSON ChannelPosition
instance CalamityToJSON' ChannelPosition where
toPairs :: forall kv. KeyValue kv => ChannelPosition -> [Maybe kv]
toPairs ChannelPosition {Maybe Bool
Maybe Integer
Snowflake GuildChannel
parentID :: Snowflake GuildChannel
lockPermissions :: Maybe Bool
position :: Maybe Integer
id :: Snowflake GuildChannel
$sel:parentID:ChannelPosition :: ChannelPosition -> Snowflake GuildChannel
$sel:lockPermissions:ChannelPosition :: ChannelPosition -> Maybe Bool
$sel:position:ChannelPosition :: ChannelPosition -> Maybe Integer
$sel:id:ChannelPosition :: ChannelPosition -> Snowflake GuildChannel
..} =
[ Key
"id" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= Snowflake GuildChannel
id
, Key
"position" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= Maybe Integer
position
, Key
"lock_permissions" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= Maybe Bool
lockPermissions
, Key
"parent_id" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= Snowflake GuildChannel
parentID
]
data ListMembersOptions = ListMembersOptions
{ ListMembersOptions -> Maybe Integer
limit :: Maybe Integer
, ListMembersOptions -> Maybe (Snowflake User)
after :: Maybe (Snowflake User)
}
deriving (Int -> ListMembersOptions -> ShowS
[ListMembersOptions] -> ShowS
ListMembersOptions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListMembersOptions] -> ShowS
$cshowList :: [ListMembersOptions] -> ShowS
show :: ListMembersOptions -> String
$cshow :: ListMembersOptions -> String
showsPrec :: Int -> ListMembersOptions -> ShowS
$cshowsPrec :: Int -> ListMembersOptions -> ShowS
Show)
deriving ([ListMembersOptions] -> Encoding
[ListMembersOptions] -> Value
ListMembersOptions -> Encoding
ListMembersOptions -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [ListMembersOptions] -> Encoding
$ctoEncodingList :: [ListMembersOptions] -> Encoding
toJSONList :: [ListMembersOptions] -> Value
$ctoJSONList :: [ListMembersOptions] -> Value
toEncoding :: ListMembersOptions -> Encoding
$ctoEncoding :: ListMembersOptions -> Encoding
toJSON :: ListMembersOptions -> Value
$ctoJSON :: ListMembersOptions -> Value
Aeson.ToJSON) via CalamityToJSON ListMembersOptions
instance Default ListMembersOptions where
def :: ListMembersOptions
def = Maybe Integer -> Maybe (Snowflake User) -> ListMembersOptions
ListMembersOptions forall a. Maybe a
Nothing forall a. Maybe a
Nothing
instance CalamityToJSON' ListMembersOptions where
toPairs :: forall kv. KeyValue kv => ListMembersOptions -> [Maybe kv]
toPairs ListMembersOptions {Maybe Integer
Maybe (Snowflake User)
after :: Maybe (Snowflake User)
limit :: Maybe Integer
$sel:after:ListMembersOptions :: ListMembersOptions -> Maybe (Snowflake User)
$sel:limit:ListMembersOptions :: ListMembersOptions -> Maybe Integer
..} =
[ Key
"limit" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Integer
limit
, Key
"after" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe (Snowflake User)
after
]
data SearchMembersOptions = SearchMembersOptions
{ SearchMembersOptions -> Maybe Integer
limit :: Maybe Integer
, SearchMembersOptions -> Text
query :: Text
}
deriving (Int -> SearchMembersOptions -> ShowS
[SearchMembersOptions] -> ShowS
SearchMembersOptions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SearchMembersOptions] -> ShowS
$cshowList :: [SearchMembersOptions] -> ShowS
show :: SearchMembersOptions -> String
$cshow :: SearchMembersOptions -> String
showsPrec :: Int -> SearchMembersOptions -> ShowS
$cshowsPrec :: Int -> SearchMembersOptions -> ShowS
Show)
deriving ([SearchMembersOptions] -> Encoding
[SearchMembersOptions] -> Value
SearchMembersOptions -> Encoding
SearchMembersOptions -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [SearchMembersOptions] -> Encoding
$ctoEncodingList :: [SearchMembersOptions] -> Encoding
toJSONList :: [SearchMembersOptions] -> Value
$ctoJSONList :: [SearchMembersOptions] -> Value
toEncoding :: SearchMembersOptions -> Encoding
$ctoEncoding :: SearchMembersOptions -> Encoding
toJSON :: SearchMembersOptions -> Value
$ctoJSON :: SearchMembersOptions -> Value
Aeson.ToJSON) via CalamityToJSON SearchMembersOptions
instance CalamityToJSON' SearchMembersOptions where
toPairs :: forall kv. KeyValue kv => SearchMembersOptions -> [Maybe kv]
toPairs SearchMembersOptions {Maybe Integer
Text
query :: Text
limit :: Maybe Integer
$sel:query:SearchMembersOptions :: SearchMembersOptions -> Text
$sel:limit:SearchMembersOptions :: SearchMembersOptions -> Maybe Integer
..} =
[ Key
"limit" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Integer
limit
, Key
"query" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= Text
query
]
data AddGuildMemberData = AddGuildMemberData
{ AddGuildMemberData -> Text
accessToken :: Text
, AddGuildMemberData -> Maybe Text
nick :: Maybe Text
, AddGuildMemberData -> Maybe [Snowflake Role]
roles :: Maybe [Snowflake Role]
, AddGuildMemberData -> Maybe Bool
mute :: Maybe Bool
, AddGuildMemberData -> Maybe Bool
deaf :: Maybe Bool
}
deriving (Int -> AddGuildMemberData -> ShowS
[AddGuildMemberData] -> ShowS
AddGuildMemberData -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AddGuildMemberData] -> ShowS
$cshowList :: [AddGuildMemberData] -> ShowS
show :: AddGuildMemberData -> String
$cshow :: AddGuildMemberData -> String
showsPrec :: Int -> AddGuildMemberData -> ShowS
$cshowsPrec :: Int -> AddGuildMemberData -> ShowS
Show)
deriving ([AddGuildMemberData] -> Encoding
[AddGuildMemberData] -> Value
AddGuildMemberData -> Encoding
AddGuildMemberData -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [AddGuildMemberData] -> Encoding
$ctoEncodingList :: [AddGuildMemberData] -> Encoding
toJSONList :: [AddGuildMemberData] -> Value
$ctoJSONList :: [AddGuildMemberData] -> Value
toEncoding :: AddGuildMemberData -> Encoding
$ctoEncoding :: AddGuildMemberData -> Encoding
toJSON :: AddGuildMemberData -> Value
$ctoJSON :: AddGuildMemberData -> Value
Aeson.ToJSON) via CalamityToJSON AddGuildMemberData
instance CalamityToJSON' AddGuildMemberData where
toPairs :: forall kv. KeyValue kv => AddGuildMemberData -> [Maybe kv]
toPairs AddGuildMemberData {Maybe Bool
Maybe [Snowflake Role]
Maybe Text
Text
deaf :: Maybe Bool
mute :: Maybe Bool
roles :: Maybe [Snowflake Role]
nick :: Maybe Text
accessToken :: Text
$sel:deaf:AddGuildMemberData :: AddGuildMemberData -> Maybe Bool
$sel:mute:AddGuildMemberData :: AddGuildMemberData -> Maybe Bool
$sel:roles:AddGuildMemberData :: AddGuildMemberData -> Maybe [Snowflake Role]
$sel:nick:AddGuildMemberData :: AddGuildMemberData -> Maybe Text
$sel:accessToken:AddGuildMemberData :: AddGuildMemberData -> Text
..} =
[ Key
"access_token" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= Text
accessToken
, Key
"nick" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Text
nick
, Key
"roles" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe [Snowflake Role]
roles
, Key
"mute" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Bool
mute
, Key
"deaf" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Bool
deaf
]
newtype ModifyGuildMemberData = ModifyGuildMemberData Aeson.Object
deriving stock (Int -> ModifyGuildMemberData -> ShowS
[ModifyGuildMemberData] -> ShowS
ModifyGuildMemberData -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModifyGuildMemberData] -> ShowS
$cshowList :: [ModifyGuildMemberData] -> ShowS
show :: ModifyGuildMemberData -> String
$cshow :: ModifyGuildMemberData -> String
showsPrec :: Int -> ModifyGuildMemberData -> ShowS
$cshowsPrec :: Int -> ModifyGuildMemberData -> ShowS
Show)
deriving newtype ([ModifyGuildMemberData] -> Encoding
[ModifyGuildMemberData] -> Value
ModifyGuildMemberData -> Encoding
ModifyGuildMemberData -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [ModifyGuildMemberData] -> Encoding
$ctoEncodingList :: [ModifyGuildMemberData] -> Encoding
toJSONList :: [ModifyGuildMemberData] -> Value
$ctoJSONList :: [ModifyGuildMemberData] -> Value
toEncoding :: ModifyGuildMemberData -> Encoding
$ctoEncoding :: ModifyGuildMemberData -> Encoding
toJSON :: ModifyGuildMemberData -> Value
$ctoJSON :: ModifyGuildMemberData -> Value
Aeson.ToJSON, NonEmpty ModifyGuildMemberData -> ModifyGuildMemberData
ModifyGuildMemberData
-> ModifyGuildMemberData -> ModifyGuildMemberData
forall b.
Integral b =>
b -> ModifyGuildMemberData -> ModifyGuildMemberData
forall a.
(a -> a -> a)
-> (NonEmpty a -> a)
-> (forall b. Integral b => b -> a -> a)
-> Semigroup a
stimes :: forall b.
Integral b =>
b -> ModifyGuildMemberData -> ModifyGuildMemberData
$cstimes :: forall b.
Integral b =>
b -> ModifyGuildMemberData -> ModifyGuildMemberData
sconcat :: NonEmpty ModifyGuildMemberData -> ModifyGuildMemberData
$csconcat :: NonEmpty ModifyGuildMemberData -> ModifyGuildMemberData
<> :: ModifyGuildMemberData
-> ModifyGuildMemberData -> ModifyGuildMemberData
$c<> :: ModifyGuildMemberData
-> ModifyGuildMemberData -> ModifyGuildMemberData
Semigroup, Semigroup ModifyGuildMemberData
ModifyGuildMemberData
[ModifyGuildMemberData] -> ModifyGuildMemberData
ModifyGuildMemberData
-> ModifyGuildMemberData -> ModifyGuildMemberData
forall a.
Semigroup a -> a -> (a -> a -> a) -> ([a] -> a) -> Monoid a
mconcat :: [ModifyGuildMemberData] -> ModifyGuildMemberData
$cmconcat :: [ModifyGuildMemberData] -> ModifyGuildMemberData
mappend :: ModifyGuildMemberData
-> ModifyGuildMemberData -> ModifyGuildMemberData
$cmappend :: ModifyGuildMemberData
-> ModifyGuildMemberData -> ModifyGuildMemberData
mempty :: ModifyGuildMemberData
$cmempty :: ModifyGuildMemberData
Monoid)
modifyGuildMemberNick :: Maybe Text -> ModifyGuildMemberData
modifyGuildMemberNick :: Maybe Text -> ModifyGuildMemberData
modifyGuildMemberNick Maybe Text
v = Object -> ModifyGuildMemberData
ModifyGuildMemberData forall a b. (a -> b) -> a -> b
$ forall v. [(Key, v)] -> KeyMap v
K.fromList [(Key
"nick", forall a. ToJSON a => a -> Value
Aeson.toJSON Maybe Text
v)]
modifyGuildMemberRoles :: Maybe [Snowflake Role] -> ModifyGuildMemberData
modifyGuildMemberRoles :: Maybe [Snowflake Role] -> ModifyGuildMemberData
modifyGuildMemberRoles Maybe [Snowflake Role]
v = Object -> ModifyGuildMemberData
ModifyGuildMemberData forall a b. (a -> b) -> a -> b
$ forall v. [(Key, v)] -> KeyMap v
K.fromList [(Key
"roles", forall a. ToJSON a => a -> Value
Aeson.toJSON Maybe [Snowflake Role]
v)]
modifyGuildMemberMute :: Maybe Bool -> ModifyGuildMemberData
modifyGuildMemberMute :: Maybe Bool -> ModifyGuildMemberData
modifyGuildMemberMute Maybe Bool
v = Object -> ModifyGuildMemberData
ModifyGuildMemberData forall a b. (a -> b) -> a -> b
$ forall v. [(Key, v)] -> KeyMap v
K.fromList [(Key
"mute", forall a. ToJSON a => a -> Value
Aeson.toJSON Maybe Bool
v)]
modifyGuildMemberDeaf :: Maybe Bool -> ModifyGuildMemberData
modifyGuildMemberDeaf :: Maybe Bool -> ModifyGuildMemberData
modifyGuildMemberDeaf Maybe Bool
v = Object -> ModifyGuildMemberData
ModifyGuildMemberData forall a b. (a -> b) -> a -> b
$ forall v. [(Key, v)] -> KeyMap v
K.fromList [(Key
"deaf", forall a. ToJSON a => a -> Value
Aeson.toJSON Maybe Bool
v)]
modifyGuildMemberChannelID :: Maybe (Snowflake VoiceChannel) -> ModifyGuildMemberData
modifyGuildMemberChannelID :: Maybe (Snowflake VoiceChannel) -> ModifyGuildMemberData
modifyGuildMemberChannelID Maybe (Snowflake VoiceChannel)
v = Object -> ModifyGuildMemberData
ModifyGuildMemberData forall a b. (a -> b) -> a -> b
$ forall v. [(Key, v)] -> KeyMap v
K.fromList [(Key
"channel_id", forall a. ToJSON a => a -> Value
Aeson.toJSON Maybe (Snowflake VoiceChannel)
v)]
data GetGuildBansOptions = GetGuildBansOptions
{ GetGuildBansOptions -> Maybe Int
limit :: Maybe Int
, GetGuildBansOptions -> Maybe Int
before :: Maybe Int
, GetGuildBansOptions -> Maybe Int
after :: Maybe Int
}
deriving (Int -> GetGuildBansOptions -> ShowS
[GetGuildBansOptions] -> ShowS
GetGuildBansOptions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetGuildBansOptions] -> ShowS
$cshowList :: [GetGuildBansOptions] -> ShowS
show :: GetGuildBansOptions -> String
$cshow :: GetGuildBansOptions -> String
showsPrec :: Int -> GetGuildBansOptions -> ShowS
$cshowsPrec :: Int -> GetGuildBansOptions -> ShowS
Show)
instance Default GetGuildBansOptions where
def :: GetGuildBansOptions
def = Maybe Int -> Maybe Int -> Maybe Int -> GetGuildBansOptions
GetGuildBansOptions forall a. Maybe a
Nothing forall a. Maybe a
Nothing forall a. Maybe a
Nothing
data CreateGuildBanData = CreateGuildBanData
{ CreateGuildBanData -> Maybe Integer
deleteMessageDays :: Maybe Integer
, CreateGuildBanData -> Maybe Text
reason :: Maybe Text
}
deriving (Int -> CreateGuildBanData -> ShowS
[CreateGuildBanData] -> ShowS
CreateGuildBanData -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateGuildBanData] -> ShowS
$cshowList :: [CreateGuildBanData] -> ShowS
show :: CreateGuildBanData -> String
$cshow :: CreateGuildBanData -> String
showsPrec :: Int -> CreateGuildBanData -> ShowS
$cshowsPrec :: Int -> CreateGuildBanData -> ShowS
Show)
instance Default CreateGuildBanData where
def :: CreateGuildBanData
def = Maybe Integer -> Maybe Text -> CreateGuildBanData
CreateGuildBanData forall a. Maybe a
Nothing forall a. Maybe a
Nothing
newtype ModifyGuildRoleData = ModifyGuildRoleData Aeson.Object
deriving stock (Int -> ModifyGuildRoleData -> ShowS
[ModifyGuildRoleData] -> ShowS
ModifyGuildRoleData -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModifyGuildRoleData] -> ShowS
$cshowList :: [ModifyGuildRoleData] -> ShowS
show :: ModifyGuildRoleData -> String
$cshow :: ModifyGuildRoleData -> String
showsPrec :: Int -> ModifyGuildRoleData -> ShowS
$cshowsPrec :: Int -> ModifyGuildRoleData -> ShowS
Show)
deriving newtype ([ModifyGuildRoleData] -> Encoding
[ModifyGuildRoleData] -> Value
ModifyGuildRoleData -> Encoding
ModifyGuildRoleData -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [ModifyGuildRoleData] -> Encoding
$ctoEncodingList :: [ModifyGuildRoleData] -> Encoding
toJSONList :: [ModifyGuildRoleData] -> Value
$ctoJSONList :: [ModifyGuildRoleData] -> Value
toEncoding :: ModifyGuildRoleData -> Encoding
$ctoEncoding :: ModifyGuildRoleData -> Encoding
toJSON :: ModifyGuildRoleData -> Value
$ctoJSON :: ModifyGuildRoleData -> Value
Aeson.ToJSON, NonEmpty ModifyGuildRoleData -> ModifyGuildRoleData
ModifyGuildRoleData -> ModifyGuildRoleData -> ModifyGuildRoleData
forall b.
Integral b =>
b -> ModifyGuildRoleData -> ModifyGuildRoleData
forall a.
(a -> a -> a)
-> (NonEmpty a -> a)
-> (forall b. Integral b => b -> a -> a)
-> Semigroup a
stimes :: forall b.
Integral b =>
b -> ModifyGuildRoleData -> ModifyGuildRoleData
$cstimes :: forall b.
Integral b =>
b -> ModifyGuildRoleData -> ModifyGuildRoleData
sconcat :: NonEmpty ModifyGuildRoleData -> ModifyGuildRoleData
$csconcat :: NonEmpty ModifyGuildRoleData -> ModifyGuildRoleData
<> :: ModifyGuildRoleData -> ModifyGuildRoleData -> ModifyGuildRoleData
$c<> :: ModifyGuildRoleData -> ModifyGuildRoleData -> ModifyGuildRoleData
Semigroup, Semigroup ModifyGuildRoleData
ModifyGuildRoleData
[ModifyGuildRoleData] -> ModifyGuildRoleData
ModifyGuildRoleData -> ModifyGuildRoleData -> ModifyGuildRoleData
forall a.
Semigroup a -> a -> (a -> a -> a) -> ([a] -> a) -> Monoid a
mconcat :: [ModifyGuildRoleData] -> ModifyGuildRoleData
$cmconcat :: [ModifyGuildRoleData] -> ModifyGuildRoleData
mappend :: ModifyGuildRoleData -> ModifyGuildRoleData -> ModifyGuildRoleData
$cmappend :: ModifyGuildRoleData -> ModifyGuildRoleData -> ModifyGuildRoleData
mempty :: ModifyGuildRoleData
$cmempty :: ModifyGuildRoleData
Monoid)
modifyGuildRoleName :: Maybe Text -> ModifyGuildRoleData
modifyGuildRoleName :: Maybe Text -> ModifyGuildRoleData
modifyGuildRoleName Maybe Text
v = Object -> ModifyGuildRoleData
ModifyGuildRoleData forall a b. (a -> b) -> a -> b
$ forall v. [(Key, v)] -> KeyMap v
K.fromList [(Key
"name", forall a. ToJSON a => a -> Value
Aeson.toJSON Maybe Text
v)]
modifyGuildRolePermissions :: Maybe Permissions -> ModifyGuildRoleData
modifyGuildRolePermissions :: Maybe Permissions -> ModifyGuildRoleData
modifyGuildRolePermissions Maybe Permissions
v = Object -> ModifyGuildRoleData
ModifyGuildRoleData forall a b. (a -> b) -> a -> b
$ forall v. [(Key, v)] -> KeyMap v
K.fromList [(Key
"permissions", forall a. ToJSON a => a -> Value
Aeson.toJSON Maybe Permissions
v)]
modifyGuildRoleColour :: Maybe (Colour Double) -> ModifyGuildRoleData
modifyGuildRoleColour :: Maybe (Colour Double) -> ModifyGuildRoleData
modifyGuildRoleColour Maybe (Colour Double)
v = Object -> ModifyGuildRoleData
ModifyGuildRoleData forall a b. (a -> b) -> a -> b
$ forall v. [(Key, v)] -> KeyMap v
K.fromList [(Key
"colour", forall a. ToJSON a => a -> Value
Aeson.toJSON (Colour Double -> IntColour
IntColour forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe (Colour Double)
v))]
modifyGuildRoleHoist :: Maybe Bool -> ModifyGuildRoleData
modifyGuildRoleHoist :: Maybe Bool -> ModifyGuildRoleData
modifyGuildRoleHoist Maybe Bool
v = Object -> ModifyGuildRoleData
ModifyGuildRoleData forall a b. (a -> b) -> a -> b
$ forall v. [(Key, v)] -> KeyMap v
K.fromList [(Key
"hoist", forall a. ToJSON a => a -> Value
Aeson.toJSON Maybe Bool
v)]
modifyGuildRoleMentionable :: Maybe Bool -> ModifyGuildRoleData
modifyGuildRoleMentionable :: Maybe Bool -> ModifyGuildRoleData
modifyGuildRoleMentionable Maybe Bool
v = Object -> ModifyGuildRoleData
ModifyGuildRoleData forall a b. (a -> b) -> a -> b
$ forall v. [(Key, v)] -> KeyMap v
K.fromList [(Key
"mentionable", forall a. ToJSON a => a -> Value
Aeson.toJSON Maybe Bool
v)]
data ModifyGuildRolePositionsData = ModifyGuildRolePositionsData
{ ModifyGuildRolePositionsData -> Snowflake Role
id :: Snowflake Role
, ModifyGuildRolePositionsData -> Maybe Integer
position :: Maybe Integer
}
deriving (Int -> ModifyGuildRolePositionsData -> ShowS
[ModifyGuildRolePositionsData] -> ShowS
ModifyGuildRolePositionsData -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModifyGuildRolePositionsData] -> ShowS
$cshowList :: [ModifyGuildRolePositionsData] -> ShowS
show :: ModifyGuildRolePositionsData -> String
$cshow :: ModifyGuildRolePositionsData -> String
showsPrec :: Int -> ModifyGuildRolePositionsData -> ShowS
$cshowsPrec :: Int -> ModifyGuildRolePositionsData -> ShowS
Show)
deriving ([ModifyGuildRolePositionsData] -> Encoding
[ModifyGuildRolePositionsData] -> Value
ModifyGuildRolePositionsData -> Encoding
ModifyGuildRolePositionsData -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [ModifyGuildRolePositionsData] -> Encoding
$ctoEncodingList :: [ModifyGuildRolePositionsData] -> Encoding
toJSONList :: [ModifyGuildRolePositionsData] -> Value
$ctoJSONList :: [ModifyGuildRolePositionsData] -> Value
toEncoding :: ModifyGuildRolePositionsData -> Encoding
$ctoEncoding :: ModifyGuildRolePositionsData -> Encoding
toJSON :: ModifyGuildRolePositionsData -> Value
$ctoJSON :: ModifyGuildRolePositionsData -> Value
Aeson.ToJSON) via CalamityToJSON ModifyGuildRolePositionsData
instance CalamityToJSON' ModifyGuildRolePositionsData where
toPairs :: forall kv.
KeyValue kv =>
ModifyGuildRolePositionsData -> [Maybe kv]
toPairs ModifyGuildRolePositionsData {Maybe Integer
Snowflake Role
position :: Maybe Integer
id :: Snowflake Role
$sel:position:ModifyGuildRolePositionsData :: ModifyGuildRolePositionsData -> Maybe Integer
$sel:id:ModifyGuildRolePositionsData :: ModifyGuildRolePositionsData -> Snowflake Role
..} =
[ Key
"id" forall v kv. (ToJSON v, KeyValue kv) => Key -> v -> Maybe kv
.= Snowflake Role
id
, Key
"postition" forall v kv. (ToJSON v, KeyValue kv) => Key -> Maybe v -> Maybe kv
.?= Maybe Integer
position
]
data GuildRequest a where
CreateGuild :: CreateGuildData -> GuildRequest Guild
GetGuild :: HasID Guild g => g -> GuildRequest Guild
ModifyGuild :: HasID Guild g => g -> ModifyGuildData -> GuildRequest Guild
DeleteGuild :: HasID Guild g => g -> GuildRequest ()
GetGuildChannels :: HasID Guild g => g -> GuildRequest [Channel]
CreateGuildChannel :: HasID Guild g => g -> ChannelCreateData -> GuildRequest Channel
ModifyGuildChannelPositions :: HasID Guild g => g -> [ChannelPosition] -> GuildRequest ()
GetGuildMember :: (HasID Guild g, HasID User u) => g -> u -> GuildRequest Member
ListGuildMembers :: HasID Guild g => g -> ListMembersOptions -> GuildRequest [Member]
SearchGuildMembers :: HasID Guild g => g -> SearchMembersOptions -> GuildRequest [Member]
AddGuildMember :: (HasID Guild g, HasID User u) => g -> u -> AddGuildMemberData -> GuildRequest (Maybe Member)
ModifyGuildMember :: (HasID Guild g, HasID User u) => g -> u -> ModifyGuildMemberData -> GuildRequest ()
ModifyCurrentUserNick :: HasID Guild g => g -> Maybe Text -> GuildRequest ()
AddGuildMemberRole :: (HasID Guild g, HasID User u, HasID Role r) => g -> u -> r -> GuildRequest ()
RemoveGuildMemberRole :: (HasID Guild g, HasID User u, HasID Role r) => g -> u -> r -> GuildRequest ()
RemoveGuildMember :: (HasID Guild g, HasID User u) => g -> u -> GuildRequest ()
GetGuildBans :: HasID Guild g => g -> GetGuildBansOptions -> GuildRequest [BanData]
GetGuildBan :: (HasID Guild g, HasID User u) => g -> u -> GuildRequest BanData
CreateGuildBan :: (HasID Guild g, HasID User u) => g -> u -> CreateGuildBanData -> GuildRequest ()
RemoveGuildBan :: (HasID Guild g, HasID User u) => g -> u -> GuildRequest ()
GetGuildRoles :: HasID Guild g => g -> GuildRequest [Role]
CreateGuildRole :: HasID Guild g => g -> ModifyGuildRoleData -> GuildRequest Role
ModifyGuildRolePositions :: HasID Guild g => g -> ModifyGuildRolePositionsData -> GuildRequest [Role]
ModifyGuildRole :: (HasID Guild g, HasID Role r) => g -> r -> ModifyGuildRoleData -> GuildRequest Role
DeleteGuildRole :: (HasID Guild g, HasID Role r) => g -> r -> GuildRequest ()
GetGuildPruneCount :: HasID Guild g => g -> Integer -> GuildRequest Integer
BeginGuildPrune :: HasID Guild g => g -> Integer -> Bool -> GuildRequest (Maybe Integer)
GetGuildVoiceRegions :: HasID Guild g => g -> GuildRequest [VoiceRegion]
GetGuildInvites :: HasID Guild g => g -> GuildRequest [Invite]
baseRoute :: Snowflake Guild -> RouteBuilder _
baseRoute :: Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild,
AddRequiredInner (Lookup ('IDRequirement Guild) '[]))]
baseRoute Snowflake Guild
id =
RouteBuilder '[]
mkRouteBuilder forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"guilds" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall {k} (a :: k). ID a
ID @Guild
forall a b. a -> (a -> b) -> b
& forall t (reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Guild
id
instance Request (GuildRequest a) where
type Result (GuildRequest a) = a
route :: GuildRequest a -> Route
route (CreateGuild CreateGuildData
_) =
RouteBuilder '[]
mkRouteBuilder forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"guilds"
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GetGuild (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid)) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (ModifyGuild (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) ModifyGuildData
_) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (DeleteGuild (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid)) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GetGuildChannels (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid)) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"channels"
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (CreateGuildChannel (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) ChannelCreateData
_) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"channels"
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (ModifyGuildChannelPositions (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) [ChannelPosition]
_) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"channels"
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GetGuildMember (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) (forall b a. HasID b a => a -> Snowflake b
getID @User -> Snowflake User
uid)) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"members" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall {k} (a :: k). ID a
ID @User
forall a b. a -> (a -> b) -> b
& forall t (reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake User
uid
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (ListGuildMembers (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) ListMembersOptions
_) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"members"
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (SearchGuildMembers (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) SearchMembersOptions
_) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"members" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"search"
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (AddGuildMember (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) (forall b a. HasID b a => a -> Snowflake b
getID @User -> Snowflake User
uid) AddGuildMemberData
_) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"members" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall {k} (a :: k). ID a
ID @User
forall a b. a -> (a -> b) -> b
& forall t (reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake User
uid
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (ModifyGuildMember (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) (forall b a. HasID b a => a -> Snowflake b
getID @User -> Snowflake User
uid) ModifyGuildMemberData
_) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"members" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall {k} (a :: k). ID a
ID @User
forall a b. a -> (a -> b) -> b
& forall t (reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake User
uid
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (ModifyCurrentUserNick (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) Maybe Text
_) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"members" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"@me" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"nick"
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (AddGuildMemberRole (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) (forall b a. HasID b a => a -> Snowflake b
getID @User -> Snowflake User
uid) (forall b a. HasID b a => a -> Snowflake b
getID @Role -> Snowflake Role
rid)) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"members" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall {k} (a :: k). ID a
ID @User forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"roles" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall {k} (a :: k). ID a
ID @Role
forall a b. a -> (a -> b) -> b
& forall t (reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake User
uid
forall a b. a -> (a -> b) -> b
& forall t (reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Role
rid
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (RemoveGuildMemberRole (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) (forall b a. HasID b a => a -> Snowflake b
getID @User -> Snowflake User
uid) (forall b a. HasID b a => a -> Snowflake b
getID @Role -> Snowflake Role
rid)) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"members" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall {k} (a :: k). ID a
ID @User forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"roles" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall {k} (a :: k). ID a
ID @Role
forall a b. a -> (a -> b) -> b
& forall t (reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake User
uid
forall a b. a -> (a -> b) -> b
& forall t (reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Role
rid
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (RemoveGuildMember (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) (forall b a. HasID b a => a -> Snowflake b
getID @User -> Snowflake User
uid)) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"members" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall {k} (a :: k). ID a
ID @User
forall a b. a -> (a -> b) -> b
& forall t (reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake User
uid
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GetGuildBans (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) GetGuildBansOptions
_) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"bans"
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GetGuildBan (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) (forall b a. HasID b a => a -> Snowflake b
getID @User -> Snowflake User
uid)) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"bans" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall {k} (a :: k). ID a
ID @User
forall a b. a -> (a -> b) -> b
& forall t (reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake User
uid
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (CreateGuildBan (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) (forall b a. HasID b a => a -> Snowflake b
getID @User -> Snowflake User
uid) CreateGuildBanData
_) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"bans" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall {k} (a :: k). ID a
ID @User
forall a b. a -> (a -> b) -> b
& forall t (reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake User
uid
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (RemoveGuildBan (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) (forall b a. HasID b a => a -> Snowflake b
getID @User -> Snowflake User
uid)) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"bans" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall {k} (a :: k). ID a
ID @User
forall a b. a -> (a -> b) -> b
& forall t (reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake User
uid
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GetGuildRoles (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid)) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"roles"
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (CreateGuildRole (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) ModifyGuildRoleData
_) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"roles"
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (ModifyGuildRolePositions (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) ModifyGuildRolePositionsData
_) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"roles"
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (ModifyGuildRole (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) (forall b a. HasID b a => a -> Snowflake b
getID @Role -> Snowflake Role
rid) ModifyGuildRoleData
_) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"roles" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall {k} (a :: k). ID a
ID @Role
forall a b. a -> (a -> b) -> b
& forall t (reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Role
rid
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (DeleteGuildRole (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) (forall b a. HasID b a => a -> Snowflake b
getID @Role -> Snowflake Role
rid)) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"roles" forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// forall {k} (a :: k). ID a
ID @Role
forall a b. a -> (a -> b) -> b
& forall t (reqs :: [(RequirementType, RouteRequirement)]).
Typeable t =>
Snowflake t
-> RouteBuilder reqs
-> RouteBuilder ('( 'IDRequirement t, 'Satisfied) : reqs)
giveID Snowflake Role
rid
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GetGuildPruneCount (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) Integer
_) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"prune"
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (BeginGuildPrune (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid) Integer
_ Bool
_) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"prune"
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GetGuildVoiceRegions (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid)) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"regions"
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
route (GetGuildInvites (forall b a. HasID b a => a -> Snowflake b
getID -> Snowflake Guild
gid)) =
Snowflake Guild
-> RouteBuilder
'[ '( 'IDRequirement Guild, 'Satisfied),
'( 'IDRequirement Guild, 'Required)]
baseRoute Snowflake Guild
gid forall a (reqs :: [(RequirementType, RouteRequirement)]).
RouteFragmentable a reqs =>
RouteBuilder reqs -> a -> ConsRes a reqs
// Text -> S
S Text
"invites"
forall a b. a -> (a -> b) -> b
& forall (reqs :: [(RequirementType, RouteRequirement)]).
EnsureFulfilled reqs =>
RouteBuilder reqs -> Route
buildRoute
action :: GuildRequest a -> Url 'Https -> Option 'Https -> Req LbsResponse
action (CreateGuild CreateGuildData
o) = forall a.
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
postWith' (forall a. a -> ReqBodyJson a
ReqBodyJson CreateGuildData
o)
action (GetGuild g
_) = Url 'Https -> Option 'Https -> Req LbsResponse
getWith
action (ModifyGuild g
_ ModifyGuildData
o) = forall a.
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
patchWith' (forall a. a -> ReqBodyJson a
ReqBodyJson ModifyGuildData
o)
action (DeleteGuild g
_) = Url 'Https -> Option 'Https -> Req LbsResponse
deleteWith
action (GetGuildChannels g
_) = Url 'Https -> Option 'Https -> Req LbsResponse
getWith
action (CreateGuildChannel g
_ ChannelCreateData
o) = forall a.
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
postWith' (forall a. a -> ReqBodyJson a
ReqBodyJson ChannelCreateData
o)
action (ModifyGuildChannelPositions g
_ [ChannelPosition]
o) = forall a.
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
postWith' (forall a. a -> ReqBodyJson a
ReqBodyJson [ChannelPosition]
o)
action (GetGuildMember g
_ u
_) = Url 'Https -> Option 'Https -> Req LbsResponse
getWith
action (ListGuildMembers g
_ ListMembersOptions {Maybe Integer
limit :: Maybe Integer
$sel:limit:ListMembersOptions :: ListMembersOptions -> Maybe Integer
limit, Maybe (Snowflake User)
after :: Maybe (Snowflake User)
$sel:after:ListMembersOptions :: ListMembersOptions -> Maybe (Snowflake User)
after}) =
Option 'Https -> Url 'Https -> Option 'Https -> Req LbsResponse
getWithP
(Text
"limit" forall a. ToHttpApiData a => Text -> Maybe a -> Option 'Https
=:? Maybe Integer
limit forall a. Semigroup a => a -> a -> a
<> Text
"after" forall a. ToHttpApiData a => Text -> Maybe a -> Option 'Https
=:? (forall t. Snowflake t -> Word64
fromSnowflake forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe (Snowflake User)
after))
action (SearchGuildMembers g
_ SearchMembersOptions {Maybe Integer
limit :: Maybe Integer
$sel:limit:SearchMembersOptions :: SearchMembersOptions -> Maybe Integer
limit, Text
query :: Text
$sel:query:SearchMembersOptions :: SearchMembersOptions -> Text
query}) =
Option 'Https -> Url 'Https -> Option 'Https -> Req LbsResponse
getWithP
(Text
"limit" forall a. ToHttpApiData a => Text -> Maybe a -> Option 'Https
=:? Maybe Integer
limit forall a. Semigroup a => a -> a -> a
<> Text
"query" forall param a.
(QueryParam param, ToHttpApiData a) =>
Text -> a -> param
=: Text
query)
action (AddGuildMember g
_ u
_ AddGuildMemberData
o) = forall a.
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
putWith' (forall a. a -> ReqBodyJson a
ReqBodyJson AddGuildMemberData
o)
action (ModifyGuildMember g
_ u
_ ModifyGuildMemberData
o) = forall a.
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
patchWith' (forall a. a -> ReqBodyJson a
ReqBodyJson ModifyGuildMemberData
o)
action (ModifyCurrentUserNick g
_ Maybe Text
nick) = forall a.
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
patchWith' (forall a. a -> ReqBodyJson a
ReqBodyJson forall a b. (a -> b) -> a -> b
$ [(Key, Value)] -> Value
Aeson.object [Key
"nick" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Aeson..= Maybe Text
nick])
action AddGuildMemberRole {} = Url 'Https -> Option 'Https -> Req LbsResponse
putEmpty
action RemoveGuildMemberRole {} = Url 'Https -> Option 'Https -> Req LbsResponse
deleteWith
action (RemoveGuildMember g
_ u
_) = Url 'Https -> Option 'Https -> Req LbsResponse
deleteWith
action (GetGuildBans g
_ GetGuildBansOptions {Maybe Int
limit :: Maybe Int
$sel:limit:GetGuildBansOptions :: GetGuildBansOptions -> Maybe Int
limit, Maybe Int
before :: Maybe Int
$sel:before:GetGuildBansOptions :: GetGuildBansOptions -> Maybe Int
before, Maybe Int
after :: Maybe Int
$sel:after:GetGuildBansOptions :: GetGuildBansOptions -> Maybe Int
after}) =
Option 'Https -> Url 'Https -> Option 'Https -> Req LbsResponse
getWithP
(Text
"limit" forall a. ToHttpApiData a => Text -> Maybe a -> Option 'Https
=:? Maybe Int
limit forall a. Semigroup a => a -> a -> a
<> Text
"before" forall a. ToHttpApiData a => Text -> Maybe a -> Option 'Https
=:? Maybe Int
before forall a. Semigroup a => a -> a -> a
<> Text
"after" forall a. ToHttpApiData a => Text -> Maybe a -> Option 'Https
=:? Maybe Int
after)
action (GetGuildBan g
_ u
_) = Url 'Https -> Option 'Https -> Req LbsResponse
getWith
action (CreateGuildBan g
_ u
_ CreateGuildBanData {Maybe Integer
deleteMessageDays :: Maybe Integer
$sel:deleteMessageDays:CreateGuildBanData :: CreateGuildBanData -> Maybe Integer
deleteMessageDays}) =
Option 'Https -> Url 'Https -> Option 'Https -> Req LbsResponse
putEmptyP
(Text
"delete_message_days" forall a. ToHttpApiData a => Text -> Maybe a -> Option 'Https
=:? Maybe Integer
deleteMessageDays)
action (RemoveGuildBan g
_ u
_) = Url 'Https -> Option 'Https -> Req LbsResponse
deleteWith
action (GetGuildRoles g
_) = Url 'Https -> Option 'Https -> Req LbsResponse
getWith
action (CreateGuildRole g
_ ModifyGuildRoleData
o) = forall a.
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
postWith' (forall a. a -> ReqBodyJson a
ReqBodyJson ModifyGuildRoleData
o)
action (ModifyGuildRolePositions g
_ ModifyGuildRolePositionsData
o) = forall a.
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
patchWith' (forall a. a -> ReqBodyJson a
ReqBodyJson ModifyGuildRolePositionsData
o)
action (ModifyGuildRole g
_ r
_ ModifyGuildRoleData
o) = forall a.
HttpBody a =>
a -> Url 'Https -> Option 'Https -> Req LbsResponse
patchWith' (forall a. a -> ReqBodyJson a
ReqBodyJson ModifyGuildRoleData
o)
action (DeleteGuildRole g
_ r
_) = Url 'Https -> Option 'Https -> Req LbsResponse
deleteWith
action (GetGuildPruneCount g
_ Integer
d) = Option 'Https -> Url 'Https -> Option 'Https -> Req LbsResponse
getWithP (Text
"days" forall param a.
(QueryParam param, ToHttpApiData a) =>
Text -> a -> param
=: Integer
d)
action (BeginGuildPrune g
_ Integer
d Bool
r) = Option 'Https -> Url 'Https -> Option 'Https -> Req LbsResponse
postEmptyP (Text
"days" forall param a.
(QueryParam param, ToHttpApiData a) =>
Text -> a -> param
=: Integer
d forall a. Semigroup a => a -> a -> a
<> Text
"compute_prune_count" forall param a.
(QueryParam param, ToHttpApiData a) =>
Text -> a -> param
=: Bool
r)
action (GetGuildVoiceRegions g
_) = Url 'Https -> Option 'Https -> Req LbsResponse
getWith
action (GetGuildInvites g
_) = Url 'Https -> Option 'Https -> Req LbsResponse
getWith
modifyResponse :: GuildRequest a -> Value -> Value
modifyResponse GuildRequest a
_ = forall a. a -> a
Prelude.id
$(makeFieldLabelsNoPrefix ''CreateGuildData)
$(makeFieldLabelsNoPrefix ''ModifyGuildData)
$(makeFieldLabelsNoPrefix ''ChannelCreateData)
$(makeFieldLabelsNoPrefix ''ChannelPosition)
$(makeFieldLabelsNoPrefix ''ListMembersOptions)
$(makeFieldLabelsNoPrefix ''AddGuildMemberData)
$(makeFieldLabelsNoPrefix ''ModifyGuildRolePositionsData)
$(makeFieldLabelsNoPrefix ''CreateGuildBanData)