packages feed

nakadi-client-0.5.1.0: tests/Network/Nakadi/Examples/Subscription/Process.hs

{-# LANGUAGE FlexibleContexts    #-}

module Network.Nakadi.Examples.Subscription.Process (dumpSubscription) where

import           ClassyPrelude
import           Data.Aeson
import qualified Network.Nakadi as Nakadi
import Network.Nakadi (MonadNakadi)
import Control.Monad.Logger
import Control.Monad.Catch (MonadMask)

dumpSubscription :: (MonadLogger m, MonadNakadi IO m, MonadUnliftIO m, MonadMask m)
                 => Nakadi.SubscriptionId -> m ()
dumpSubscription subscriptionId =
  Nakadi.subscriptionProcess Nothing subscriptionId processBatch

  where processBatch :: MonadLogger m => Nakadi.SubscriptionEventStreamBatch Value -> m ()
        processBatch batch =
          logInfoN (tshow batch)