calamity-0.2.0.2: A library for writing discord bots in haskell
Safe HaskellNone
LanguageHaskell2010

Calamity.HTTP.Internal.Request

Description

Generic Request type

Documentation

class Request a where Source #

Minimal complete definition

route, action

Associated Types

type Result a Source #

Methods

route :: a -> Route Source #

action :: a -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

modifyResponse :: a -> Value -> Value Source #

Instances

Instances details
Request (WebhookRequest a) Source # 
Instance details

Defined in Calamity.HTTP.Webhook

Associated Types

type Result (WebhookRequest a) Source #

Methods

route :: WebhookRequest a -> Route Source #

action :: WebhookRequest a -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

modifyResponse :: WebhookRequest a -> Value -> Value Source #

Request (UserRequest a) Source # 
Instance details

Defined in Calamity.HTTP.User

Associated Types

type Result (UserRequest a) Source #

Methods

route :: UserRequest a -> Route Source #

action :: UserRequest a -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

modifyResponse :: UserRequest a -> Value -> Value Source #

Request a => Request (Reason a) Source # 
Instance details

Defined in Calamity.HTTP.Reason

Associated Types

type Result (Reason a) Source #

Methods

route :: Reason a -> Route Source #

action :: Reason a -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

modifyResponse :: Reason a -> Value -> Value Source #

Request (MiscRequest a) Source # 
Instance details

Defined in Calamity.HTTP.MiscRoutes

Associated Types

type Result (MiscRequest a) Source #

Methods

route :: MiscRequest a -> Route Source #

action :: MiscRequest a -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

modifyResponse :: MiscRequest a -> Value -> Value Source #

Request (InviteRequest a) Source # 
Instance details

Defined in Calamity.HTTP.Invite

Associated Types

type Result (InviteRequest a) Source #

Methods

route :: InviteRequest a -> Route Source #

action :: InviteRequest a -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

modifyResponse :: InviteRequest a -> Value -> Value Source #

Request (GuildRequest a) Source # 
Instance details

Defined in Calamity.HTTP.Guild

Associated Types

type Result (GuildRequest a) Source #

Methods

route :: GuildRequest a -> Route Source #

action :: GuildRequest a -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

modifyResponse :: GuildRequest a -> Value -> Value Source #

Request (EmojiRequest a) Source # 
Instance details

Defined in Calamity.HTTP.Emoji

Associated Types

type Result (EmojiRequest a) Source #

Methods

route :: EmojiRequest a -> Route Source #

action :: EmojiRequest a -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

modifyResponse :: EmojiRequest a -> Value -> Value Source #

Request (ChannelRequest a) Source # 
Instance details

Defined in Calamity.HTTP.Channel

Associated Types

type Result (ChannelRequest a) Source #

Methods

route :: ChannelRequest a -> Route Source #

action :: ChannelRequest a -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

modifyResponse :: ChannelRequest a -> Value -> Value Source #

Request (AuditLogRequest a) Source # 
Instance details

Defined in Calamity.HTTP.AuditLog

Associated Types

type Result (AuditLogRequest a) Source #

Methods

route :: AuditLogRequest a -> Route Source #

action :: AuditLogRequest a -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

modifyResponse :: AuditLogRequest a -> Value -> Value Source #

invoke :: (BotC r, Request a, ReadResponse (Result a)) => a -> Sem r (Either RestError (Result a)) Source #

getWith :: Url 'Https -> Option 'Https -> Req LbsResponse Source #

postWith' :: HttpBody a => a -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

postWithP' :: HttpBody a => a -> Option 'Https -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

putWith' :: HttpBody a => a -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

patchWith' :: HttpBody a => a -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

putEmpty :: Url 'Https -> Option 'Https -> Req LbsResponse Source #

putEmptyP :: Option 'Https -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

postEmpty :: Url 'Https -> Option 'Https -> Req LbsResponse Source #

postEmptyP :: Option 'Https -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

getWithP :: Option 'Https -> Url 'Https -> Option 'Https -> Req LbsResponse Source #

deleteWith :: Url 'Https -> Option 'Https -> Req LbsResponse Source #

(=:?) :: ToHttpApiData a => Text -> Maybe a -> Option 'Https Source #