nakadi-client-0.5.0.0: src/Network/Nakadi/Subscriptions/Subscription.hs
{-|
Module : Network.Nakadi.Subscriptions.Stats
Description : Implementation of Nakadi Subscription API
Copyright : (c) Moritz Schulte 2017, 2018
License : BSD3
Maintainer : mtesseract@silverratio.net
Stability : experimental
Portability : POSIX
This module implements the @\/subscriptions\/SUBSCRIPTIONS@ API.
-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE MultiParamTypeClasses #-}
module Network.Nakadi.Subscriptions.Subscription
( subscriptionGet
, subscriptionDelete
) where
import Network.Nakadi.Internal.Prelude
import Network.Nakadi.Internal.Conversions
import Network.Nakadi.Internal.Http
path :: SubscriptionId -> ByteString
path subscriptionId =
"/subscriptions/"
<> subscriptionIdToByteString subscriptionId
-- | @GET@ to @\/subscriptions\/SUBSCRIPTION@. Looks up subscription
-- information for a subscription ID.
subscriptionGet ::
MonadNakadi b m
=> SubscriptionId -- ^ Subscription ID
-> m Subscription -- ^ Resulting Subscription Information
subscriptionGet subscriptionId =
httpJsonBody ok200 [(status404, errorSubscriptionNotFound)]
(setRequestMethod "GET" . setRequestPath (path subscriptionId))
-- | @DELETE@ to @\/subscriptions\/SUBSCRIPTION@. Deletes a
-- subscription by subscription ID.
subscriptionDelete ::
MonadNakadi b m
=> SubscriptionId -- ^ ID of the Subcription to delete
-> m ()
subscriptionDelete subscriptionId =
httpJsonNoBody status204 [(status404, errorSubscriptionNotFound)]
(setRequestMethod "DELETE" . setRequestPath (path subscriptionId))