hw-aws-sqs-conduit-0.1.0.0: src/HaskellWorks/Aws/Sqs/Conduit.hs
module HaskellWorks.Aws.Sqs.Conduit
( sqsSink
, sqsSource
) where
import Control.Monad.IO.Class
import Control.Monad.Trans (lift)
import Data.Conduit
import Data.Text
import Network.AWS hiding (await, response)
import Network.AWS.SQS.ReceiveMessage
import Network.AWS.SQS.SendMessage
import qualified Network.AWS as AWS
sqsSink :: MonadAWS m => SendMessage -> Conduit Text m SendMessageResponse
sqsSink sendMessage = do
maybeM <- await
case maybeM of
Just m -> do
resp <- lift $ send sendMessage
yield resp
sqsSink sendMessage
Nothing -> return ()
sqsSource :: MonadAWS m => ReceiveMessage -> Source m ReceiveMessageResponse
sqsSource receiveMessage = do
m <- lift $ send receiveMessage
yield m
sqsSource receiveMessage