calamity-0.1.26.0: Calamity/HTTP/Invite.hs
-- | Invite endpoints
module Calamity.HTTP.Invite (InviteRequest (..)) where
import Calamity.HTTP.Internal.Request
import Calamity.HTTP.Internal.Route
import Calamity.Types.Model.Guild
import Control.Lens hiding ((.=))
import Data.Text (Text)
import Network.HTTP.Req
data InviteRequest a where
GetInvite :: Text -> InviteRequest Invite
DeleteInvite :: Text -> InviteRequest ()
baseRoute :: RouteBuilder _
baseRoute = mkRouteBuilder // S "invites"
instance Request (InviteRequest a) where
type Result (InviteRequest a) = a
route (GetInvite c) =
baseRoute // S c
& buildRoute
route (DeleteInvite c) =
baseRoute // S c
& buildRoute
action (GetInvite _) = getWithP ("with_counts" =: True)
action (DeleteInvite _) = deleteWith