owenbot-0.1.0.0
Safe HaskellNone
LanguageHaskell2010

Discord.Internal.Monad

Synopsis

Documentation

class (Monad m, MonadThrow m, MonadMask m, MonadFail m) => MonadDiscord m where Source #

MonadDiscord is a data class of Monads that can interact with Discord. It requires MonadThrow to throw possible errors like HTTP errors, MonadMask as a helper for common operations paired with errors (like finally), and MonadFail to allow convenient pattern-matching in do-notation (not necessary, but helps a lot with our code style).

Methods

getChannel :: ChannelId -> m Channel Source #

modifyChannel :: ChannelId -> ModifyChannelOpts -> m Channel Source #

deleteChannel :: ChannelId -> m Channel Source #

getChannelMessages :: ChannelId -> (Int, MessageTiming) -> m [Message] Source #

getChannelMessage :: (ChannelId, MessageId) -> m Message Source #

createMessage :: ChannelId -> Text -> m Message Source #

createMessageEmbed :: ChannelId -> Text -> CreateEmbed -> m Message Source #

createMessageUploadFile :: ChannelId -> Text -> ByteString -> m Message Source #

createMessageDetailed :: ChannelId -> MessageDetailedOpts -> m Message Source #

createReaction :: (ChannelId, MessageId) -> Text -> m () Source #

deleteOwnReaction :: (ChannelId, MessageId) -> Text -> m () Source #

deleteUserReaction :: (ChannelId, MessageId) -> UserId -> Text -> m () Source #

deleteSingleReaction :: (ChannelId, MessageId) -> Text -> m () Source #

getReactions :: (ChannelId, MessageId) -> Text -> (Int, ReactionTiming) -> m [User] Source #

deleteAllReactions :: (ChannelId, MessageId) -> m () Source #

editMessage :: (ChannelId, MessageId) -> Text -> Maybe CreateEmbed -> m Message Source #

deleteMessage :: (ChannelId, MessageId) -> m () Source #

bulkDeleteMessage :: (ChannelId, [MessageId]) -> m () Source #

editChannelPermissions :: ChannelId -> OverwriteId -> ChannelPermissionsOpts -> m () Source #

getChannelInvites :: ChannelId -> m Object Source #

createChannelInvite :: ChannelId -> ChannelInviteOpts -> m Invite Source #

deleteChannelPermission :: ChannelId -> OverwriteId -> m () Source #

triggerTypingIndicator :: ChannelId -> m () Source #

getPinnedMessages :: ChannelId -> m [Message] Source #

addPinnedMessage :: (ChannelId, MessageId) -> m () Source #

deletePinnedMessage :: (ChannelId, MessageId) -> m () Source #

groupDMAddRecipient :: ChannelId -> GroupDMAddRecipientOpts -> m () Source #

groupDMRemoveRecipient :: ChannelId -> UserId -> m () Source #

listGuildEmojis :: GuildId -> m [Emoji] Source #

getGuildEmoji :: GuildId -> EmojiId -> m Emoji Source #

createGuildEmoji :: GuildId -> Text -> ByteString -> m Emoji Source #

modifyGuildEmoji :: GuildId -> EmojiId -> ModifyGuildEmojiOpts -> m Emoji Source #

deleteGuildEmoji :: GuildId -> EmojiId -> m () Source #

createGuild :: CreateGuildOpts -> m Guild Source #

getGuild :: GuildId -> m Guild Source #

modifyGuild :: GuildId -> ModifyGuildOpts -> m Guild Source #

deleteGuild :: GuildId -> m () Source #

getGuildChannels :: GuildId -> m [Channel] Source #

createGuildChannel :: GuildId -> Text -> [Overwrite] -> CreateGuildChannelOpts -> m Channel Source #

modifyGuildChannelPositions :: GuildId -> [(ChannelId, Int)] -> m [Channel] Source #

getGuildMember :: GuildId -> UserId -> m GuildMember Source #

listGuildMembers :: GuildId -> GuildMembersTiming -> m [GuildMember] Source #

addGuildMember :: GuildId -> UserId -> AddGuildMemberOpts -> m () Source #

modifyGuildMember :: GuildId -> UserId -> ModifyGuildMemberOpts -> m () Source #

modifyCurrentUserNick :: GuildId -> Text -> m () Source #

addGuildMemberRole :: GuildId -> UserId -> RoleId -> m () Source #

removeGuildMemberRole :: GuildId -> UserId -> RoleId -> m () Source #

removeGuildMember :: GuildId -> UserId -> m () Source #

getGuildBans :: GuildId -> m [GuildBan] Source #

getGuildBan :: GuildId -> UserId -> m GuildBan Source #

createGuildBan :: GuildId -> UserId -> CreateGuildBanOpts -> m () Source #

removeGuildBan :: GuildId -> UserId -> m () Source #

getGuildRoles :: GuildId -> m [Role] Source #

createGuildRole :: GuildId -> ModifyGuildRoleOpts -> m Role Source #

modifyGuildRolePositions :: GuildId -> [(RoleId, Integer)] -> m [Role] Source #

modifyGuildRole :: GuildId -> RoleId -> ModifyGuildRoleOpts -> m Role Source #

deleteGuildRole :: GuildId -> RoleId -> m () Source #

getGuildPruneCount :: GuildId -> Integer -> m Object Source #

beginGuildPrune :: GuildId -> Integer -> m Object Source #

getGuildVoiceRegions :: GuildId -> m [VoiceRegion] Source #

getGuildInvites :: GuildId -> m [Invite] Source #

getGuildIntegrations :: GuildId -> m [Integration] Source #

createGuildIntegration :: GuildId -> IntegrationId -> CreateGuildIntegrationOpts -> m () Source #

modifyGuildIntegration :: GuildId -> IntegrationId -> ModifyGuildIntegrationOpts -> m () Source #

deleteGuildIntegration :: GuildId -> IntegrationId -> m () Source #

syncGuildIntegration :: GuildId -> IntegrationId -> m () Source #

getGuildEmbed :: GuildId -> m GuildEmbed Source #

modifyGuildEmbed :: GuildId -> GuildEmbed -> m GuildEmbed Source #

getGuildVanityURL :: GuildId -> m Text Source #

getInvite :: Text -> m Invite Source #

deleteInvite :: Text -> m Invite Source #

getCurrentUser :: m User Source #

getUser :: UserId -> m User Source #

modifyCurrentUser :: Text -> CurrentUserAvatar -> m User Source #

getCurrentUserGuilds :: m [PartialGuild] Source #

leaveGuild :: GuildId -> m () Source #

getUserDMs :: m [Channel] Source #

createDM :: UserId -> m Channel Source #

getUserConnections :: m [ConnectionObject] Source #

listVoiceRegions :: m [VoiceRegion] Source #

createWebhook :: ChannelId -> CreateWebhookOpts -> m Webhook Source #

getChannelWebhooks :: ChannelId -> m [Webhook] Source #

getGuildWebhooks :: GuildId -> m [Webhook] Source #

getWebhook :: WebhookId -> m Webhook Source #

getWebhookWithToken :: WebhookId -> Text -> m Webhook Source #

modifyWebhook :: WebhookId -> ModifyWebhookOpts -> m Webhook Source #

modifyWebhookWithToken :: WebhookId -> Text -> ModifyWebhookOpts -> m Webhook Source #

deleteWebhook :: WebhookId -> m () Source #

deleteWebhookWithToken :: WebhookId -> Text -> m () Source #

executeWebhookWithToken :: WebhookId -> Text -> ExecuteWebhookWithTokenOpts -> m () Source #

respond :: Message -> Text -> m () Source #

Instances

Instances details
MonadDiscord DiscordHandler Source #

Implements every single possible rest call as a wrapper function. Convenient notation achieved using a point-free restCallAndHandle

Instance details

Defined in Discord.Internal.Monad

Methods

getChannel :: ChannelId -> DiscordHandler Channel Source #

modifyChannel :: ChannelId -> ModifyChannelOpts -> DiscordHandler Channel Source #

deleteChannel :: ChannelId -> DiscordHandler Channel Source #

getChannelMessages :: ChannelId -> (Int, MessageTiming) -> DiscordHandler [Message] Source #

getChannelMessage :: (ChannelId, MessageId) -> DiscordHandler Message Source #

createMessage :: ChannelId -> Text -> DiscordHandler Message Source #

createMessageEmbed :: ChannelId -> Text -> CreateEmbed -> DiscordHandler Message Source #

createMessageUploadFile :: ChannelId -> Text -> ByteString -> DiscordHandler Message Source #

createMessageDetailed :: ChannelId -> MessageDetailedOpts -> DiscordHandler Message Source #

createReaction :: (ChannelId, MessageId) -> Text -> DiscordHandler () Source #

deleteOwnReaction :: (ChannelId, MessageId) -> Text -> DiscordHandler () Source #

deleteUserReaction :: (ChannelId, MessageId) -> UserId -> Text -> DiscordHandler () Source #

deleteSingleReaction :: (ChannelId, MessageId) -> Text -> DiscordHandler () Source #

getReactions :: (ChannelId, MessageId) -> Text -> (Int, ReactionTiming) -> DiscordHandler [User] Source #

deleteAllReactions :: (ChannelId, MessageId) -> DiscordHandler () Source #

editMessage :: (ChannelId, MessageId) -> Text -> Maybe CreateEmbed -> DiscordHandler Message Source #

deleteMessage :: (ChannelId, MessageId) -> DiscordHandler () Source #

bulkDeleteMessage :: (ChannelId, [MessageId]) -> DiscordHandler () Source #

editChannelPermissions :: ChannelId -> OverwriteId -> ChannelPermissionsOpts -> DiscordHandler () Source #

getChannelInvites :: ChannelId -> DiscordHandler Object Source #

createChannelInvite :: ChannelId -> ChannelInviteOpts -> DiscordHandler Invite Source #

deleteChannelPermission :: ChannelId -> OverwriteId -> DiscordHandler () Source #

triggerTypingIndicator :: ChannelId -> DiscordHandler () Source #

getPinnedMessages :: ChannelId -> DiscordHandler [Message] Source #

addPinnedMessage :: (ChannelId, MessageId) -> DiscordHandler () Source #

deletePinnedMessage :: (ChannelId, MessageId) -> DiscordHandler () Source #

groupDMAddRecipient :: ChannelId -> GroupDMAddRecipientOpts -> DiscordHandler () Source #

groupDMRemoveRecipient :: ChannelId -> UserId -> DiscordHandler () Source #

listGuildEmojis :: GuildId -> DiscordHandler [Emoji] Source #

getGuildEmoji :: GuildId -> EmojiId -> DiscordHandler Emoji Source #

createGuildEmoji :: GuildId -> Text -> ByteString -> DiscordHandler Emoji Source #

modifyGuildEmoji :: GuildId -> EmojiId -> ModifyGuildEmojiOpts -> DiscordHandler Emoji Source #

deleteGuildEmoji :: GuildId -> EmojiId -> DiscordHandler () Source #

createGuild :: CreateGuildOpts -> DiscordHandler Guild Source #

getGuild :: GuildId -> DiscordHandler Guild Source #

modifyGuild :: GuildId -> ModifyGuildOpts -> DiscordHandler Guild Source #

deleteGuild :: GuildId -> DiscordHandler () Source #

getGuildChannels :: GuildId -> DiscordHandler [Channel] Source #

createGuildChannel :: GuildId -> Text -> [Overwrite] -> CreateGuildChannelOpts -> DiscordHandler Channel Source #

modifyGuildChannelPositions :: GuildId -> [(ChannelId, Int)] -> DiscordHandler [Channel] Source #

getGuildMember :: GuildId -> UserId -> DiscordHandler GuildMember Source #

listGuildMembers :: GuildId -> GuildMembersTiming -> DiscordHandler [GuildMember] Source #

addGuildMember :: GuildId -> UserId -> AddGuildMemberOpts -> DiscordHandler () Source #

modifyGuildMember :: GuildId -> UserId -> ModifyGuildMemberOpts -> DiscordHandler () Source #

modifyCurrentUserNick :: GuildId -> Text -> DiscordHandler () Source #

addGuildMemberRole :: GuildId -> UserId -> RoleId -> DiscordHandler () Source #

removeGuildMemberRole :: GuildId -> UserId -> RoleId -> DiscordHandler () Source #

removeGuildMember :: GuildId -> UserId -> DiscordHandler () Source #

getGuildBans :: GuildId -> DiscordHandler [GuildBan] Source #

getGuildBan :: GuildId -> UserId -> DiscordHandler GuildBan Source #

createGuildBan :: GuildId -> UserId -> CreateGuildBanOpts -> DiscordHandler () Source #

removeGuildBan :: GuildId -> UserId -> DiscordHandler () Source #

getGuildRoles :: GuildId -> DiscordHandler [Role] Source #

createGuildRole :: GuildId -> ModifyGuildRoleOpts -> DiscordHandler Role Source #

modifyGuildRolePositions :: GuildId -> [(RoleId, Integer)] -> DiscordHandler [Role] Source #

modifyGuildRole :: GuildId -> RoleId -> ModifyGuildRoleOpts -> DiscordHandler Role Source #

deleteGuildRole :: GuildId -> RoleId -> DiscordHandler () Source #

getGuildPruneCount :: GuildId -> Integer -> DiscordHandler Object Source #

beginGuildPrune :: GuildId -> Integer -> DiscordHandler Object Source #

getGuildVoiceRegions :: GuildId -> DiscordHandler [VoiceRegion] Source #

getGuildInvites :: GuildId -> DiscordHandler [Invite] Source #

getGuildIntegrations :: GuildId -> DiscordHandler [Integration] Source #

createGuildIntegration :: GuildId -> IntegrationId -> CreateGuildIntegrationOpts -> DiscordHandler () Source #

modifyGuildIntegration :: GuildId -> IntegrationId -> ModifyGuildIntegrationOpts -> DiscordHandler () Source #

deleteGuildIntegration :: GuildId -> IntegrationId -> DiscordHandler () Source #

syncGuildIntegration :: GuildId -> IntegrationId -> DiscordHandler () Source #

getGuildEmbed :: GuildId -> DiscordHandler GuildEmbed Source #

modifyGuildEmbed :: GuildId -> GuildEmbed -> DiscordHandler GuildEmbed Source #

getGuildVanityURL :: GuildId -> DiscordHandler Text Source #

getInvite :: Text -> DiscordHandler Invite Source #

deleteInvite :: Text -> DiscordHandler Invite Source #

getCurrentUser :: DiscordHandler User Source #

getUser :: UserId -> DiscordHandler User Source #

modifyCurrentUser :: Text -> CurrentUserAvatar -> DiscordHandler User Source #

getCurrentUserGuilds :: DiscordHandler [PartialGuild] Source #

leaveGuild :: GuildId -> DiscordHandler () Source #

getUserDMs :: DiscordHandler [Channel] Source #

createDM :: UserId -> DiscordHandler Channel Source #

getUserConnections :: DiscordHandler [ConnectionObject] Source #

listVoiceRegions :: DiscordHandler [VoiceRegion] Source #

createWebhook :: ChannelId -> CreateWebhookOpts -> DiscordHandler Webhook Source #

getChannelWebhooks :: ChannelId -> DiscordHandler [Webhook] Source #

getGuildWebhooks :: GuildId -> DiscordHandler [Webhook] Source #

getWebhook :: WebhookId -> DiscordHandler Webhook Source #

getWebhookWithToken :: WebhookId -> Text -> DiscordHandler Webhook Source #

modifyWebhook :: WebhookId -> ModifyWebhookOpts -> DiscordHandler Webhook Source #

modifyWebhookWithToken :: WebhookId -> Text -> ModifyWebhookOpts -> DiscordHandler Webhook Source #

deleteWebhook :: WebhookId -> DiscordHandler () Source #

deleteWebhookWithToken :: WebhookId -> Text -> DiscordHandler () Source #

executeWebhookWithToken :: WebhookId -> Text -> ExecuteWebhookWithTokenOpts -> DiscordHandler () Source #

respond :: Message -> Text -> DiscordHandler () Source #

MonadDiscord (ReaderT Auth IO) Source #

Unfortunately, IO cannot be an instance of MonadDiscord because it needs access to the Auth tokens, but that can't be put in the type signature. So instead, it is implicitly passed through a ReaderT.

Usage:
import Control.Monad.Reader ( runReaderT ) someFunc :: IO () someFunc = runReaderT (createMessage 1234 "text" >> pure ()) (Auth "tokenhere")
Instance details

Defined in Discord.Internal.Monad

Methods

getChannel :: ChannelId -> ReaderT Auth IO Channel Source #

modifyChannel :: ChannelId -> ModifyChannelOpts -> ReaderT Auth IO Channel Source #

deleteChannel :: ChannelId -> ReaderT Auth IO Channel Source #

getChannelMessages :: ChannelId -> (Int, MessageTiming) -> ReaderT Auth IO [Message] Source #

getChannelMessage :: (ChannelId, MessageId) -> ReaderT Auth IO Message Source #

createMessage :: ChannelId -> Text -> ReaderT Auth IO Message Source #

createMessageEmbed :: ChannelId -> Text -> CreateEmbed -> ReaderT Auth IO Message Source #

createMessageUploadFile :: ChannelId -> Text -> ByteString -> ReaderT Auth IO Message Source #

createMessageDetailed :: ChannelId -> MessageDetailedOpts -> ReaderT Auth IO Message Source #

createReaction :: (ChannelId, MessageId) -> Text -> ReaderT Auth IO () Source #

deleteOwnReaction :: (ChannelId, MessageId) -> Text -> ReaderT Auth IO () Source #

deleteUserReaction :: (ChannelId, MessageId) -> UserId -> Text -> ReaderT Auth IO () Source #

deleteSingleReaction :: (ChannelId, MessageId) -> Text -> ReaderT Auth IO () Source #

getReactions :: (ChannelId, MessageId) -> Text -> (Int, ReactionTiming) -> ReaderT Auth IO [User] Source #

deleteAllReactions :: (ChannelId, MessageId) -> ReaderT Auth IO () Source #

editMessage :: (ChannelId, MessageId) -> Text -> Maybe CreateEmbed -> ReaderT Auth IO Message Source #

deleteMessage :: (ChannelId, MessageId) -> ReaderT Auth IO () Source #

bulkDeleteMessage :: (ChannelId, [MessageId]) -> ReaderT Auth IO () Source #

editChannelPermissions :: ChannelId -> OverwriteId -> ChannelPermissionsOpts -> ReaderT Auth IO () Source #

getChannelInvites :: ChannelId -> ReaderT Auth IO Object Source #

createChannelInvite :: ChannelId -> ChannelInviteOpts -> ReaderT Auth IO Invite Source #

deleteChannelPermission :: ChannelId -> OverwriteId -> ReaderT Auth IO () Source #

triggerTypingIndicator :: ChannelId -> ReaderT Auth IO () Source #

getPinnedMessages :: ChannelId -> ReaderT Auth IO [Message] Source #

addPinnedMessage :: (ChannelId, MessageId) -> ReaderT Auth IO () Source #

deletePinnedMessage :: (ChannelId, MessageId) -> ReaderT Auth IO () Source #

groupDMAddRecipient :: ChannelId -> GroupDMAddRecipientOpts -> ReaderT Auth IO () Source #

groupDMRemoveRecipient :: ChannelId -> UserId -> ReaderT Auth IO () Source #

listGuildEmojis :: GuildId -> ReaderT Auth IO [Emoji] Source #

getGuildEmoji :: GuildId -> EmojiId -> ReaderT Auth IO Emoji Source #

createGuildEmoji :: GuildId -> Text -> ByteString -> ReaderT Auth IO Emoji Source #

modifyGuildEmoji :: GuildId -> EmojiId -> ModifyGuildEmojiOpts -> ReaderT Auth IO Emoji Source #

deleteGuildEmoji :: GuildId -> EmojiId -> ReaderT Auth IO () Source #

createGuild :: CreateGuildOpts -> ReaderT Auth IO Guild Source #

getGuild :: GuildId -> ReaderT Auth IO Guild Source #

modifyGuild :: GuildId -> ModifyGuildOpts -> ReaderT Auth IO Guild Source #

deleteGuild :: GuildId -> ReaderT Auth IO () Source #

getGuildChannels :: GuildId -> ReaderT Auth IO [Channel] Source #

createGuildChannel :: GuildId -> Text -> [Overwrite] -> CreateGuildChannelOpts -> ReaderT Auth IO Channel Source #

modifyGuildChannelPositions :: GuildId -> [(ChannelId, Int)] -> ReaderT Auth IO [Channel] Source #

getGuildMember :: GuildId -> UserId -> ReaderT Auth IO GuildMember Source #

listGuildMembers :: GuildId -> GuildMembersTiming -> ReaderT Auth IO [GuildMember] Source #

addGuildMember :: GuildId -> UserId -> AddGuildMemberOpts -> ReaderT Auth IO () Source #

modifyGuildMember :: GuildId -> UserId -> ModifyGuildMemberOpts -> ReaderT Auth IO () Source #

modifyCurrentUserNick :: GuildId -> Text -> ReaderT Auth IO () Source #

addGuildMemberRole :: GuildId -> UserId -> RoleId -> ReaderT Auth IO () Source #

removeGuildMemberRole :: GuildId -> UserId -> RoleId -> ReaderT Auth IO () Source #

removeGuildMember :: GuildId -> UserId -> ReaderT Auth IO () Source #

getGuildBans :: GuildId -> ReaderT Auth IO [GuildBan] Source #

getGuildBan :: GuildId -> UserId -> ReaderT Auth IO GuildBan Source #

createGuildBan :: GuildId -> UserId -> CreateGuildBanOpts -> ReaderT Auth IO () Source #

removeGuildBan :: GuildId -> UserId -> ReaderT Auth IO () Source #

getGuildRoles :: GuildId -> ReaderT Auth IO [Role] Source #

createGuildRole :: GuildId -> ModifyGuildRoleOpts -> ReaderT Auth IO Role Source #

modifyGuildRolePositions :: GuildId -> [(RoleId, Integer)] -> ReaderT Auth IO [Role] Source #

modifyGuildRole :: GuildId -> RoleId -> ModifyGuildRoleOpts -> ReaderT Auth IO Role Source #

deleteGuildRole :: GuildId -> RoleId -> ReaderT Auth IO () Source #

getGuildPruneCount :: GuildId -> Integer -> ReaderT Auth IO Object Source #

beginGuildPrune :: GuildId -> Integer -> ReaderT Auth IO Object Source #

getGuildVoiceRegions :: GuildId -> ReaderT Auth IO [VoiceRegion] Source #

getGuildInvites :: GuildId -> ReaderT Auth IO [Invite] Source #

getGuildIntegrations :: GuildId -> ReaderT Auth IO [Integration] Source #

createGuildIntegration :: GuildId -> IntegrationId -> CreateGuildIntegrationOpts -> ReaderT Auth IO () Source #

modifyGuildIntegration :: GuildId -> IntegrationId -> ModifyGuildIntegrationOpts -> ReaderT Auth IO () Source #

deleteGuildIntegration :: GuildId -> IntegrationId -> ReaderT Auth IO () Source #

syncGuildIntegration :: GuildId -> IntegrationId -> ReaderT Auth IO () Source #

getGuildEmbed :: GuildId -> ReaderT Auth IO GuildEmbed Source #

modifyGuildEmbed :: GuildId -> GuildEmbed -> ReaderT Auth IO GuildEmbed Source #

getGuildVanityURL :: GuildId -> ReaderT Auth IO Text Source #

getInvite :: Text -> ReaderT Auth IO Invite Source #

deleteInvite :: Text -> ReaderT Auth IO Invite Source #

getCurrentUser :: ReaderT Auth IO User Source #

getUser :: UserId -> ReaderT Auth IO User Source #

modifyCurrentUser :: Text -> CurrentUserAvatar -> ReaderT Auth IO User Source #

getCurrentUserGuilds :: ReaderT Auth IO [PartialGuild] Source #

leaveGuild :: GuildId -> ReaderT Auth IO () Source #

getUserDMs :: ReaderT Auth IO [Channel] Source #

createDM :: UserId -> ReaderT Auth IO Channel Source #

getUserConnections :: ReaderT Auth IO [ConnectionObject] Source #

listVoiceRegions :: ReaderT Auth IO [VoiceRegion] Source #

createWebhook :: ChannelId -> CreateWebhookOpts -> ReaderT Auth IO Webhook Source #

getChannelWebhooks :: ChannelId -> ReaderT Auth IO [Webhook] Source #

getGuildWebhooks :: GuildId -> ReaderT Auth IO [Webhook] Source #

getWebhook :: WebhookId -> ReaderT Auth IO Webhook Source #

getWebhookWithToken :: WebhookId -> Text -> ReaderT Auth IO Webhook Source #

modifyWebhook :: WebhookId -> ModifyWebhookOpts -> ReaderT Auth IO Webhook Source #

modifyWebhookWithToken :: WebhookId -> Text -> ModifyWebhookOpts -> ReaderT Auth IO Webhook Source #

deleteWebhook :: WebhookId -> ReaderT Auth IO () Source #

deleteWebhookWithToken :: WebhookId -> Text -> ReaderT Auth IO () Source #

executeWebhookWithToken :: WebhookId -> Text -> ExecuteWebhookWithTokenOpts -> ReaderT Auth IO () Source #

respond :: Message -> Text -> ReaderT Auth IO () Source #