nakadi-client-0.6.0.0: src/Network/Nakadi/Subscriptions/Subscription.hs
{-|
Module : Network.Nakadi.Subscriptions.Stats
Description : Implementation of Nakadi Subscription API
Copyright : (c) Moritz Clasmeier 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))