packages feed

freddy 0.1.0.0 → 0.1.1.0

raw patch · 4 files changed

+77/−2 lines, 4 files

Files

freddy.cabal view
@@ -1,5 +1,5 @@ name:                freddy-version:             0.1.0.0+version:             0.1.1.0 homepage:            https://github.com/salemove/freddy-hs license:             MIT license-file:        LICENSE@@ -12,7 +12,11 @@ synopsis:            RabbitMQ Messaging API supporting request-response  library-  exposed-modules:   Network.Freddy+  exposed-modules:+    Network.Freddy,+    Network.Freddy.CorrelationIdGenerator,+    Network.Freddy.Request,+    Network.Freddy.ResultType   build-depends:     base           >= 4.8 && < 5,     bytestring     >= 0.9,
+ src/Network/Freddy/CorrelationIdGenerator.hs view
@@ -0,0 +1,16 @@+module Network.Freddy.CorrelationIdGenerator (CorrelationId, generateCorrelationId) where++import System.Random (randomIO)+import qualified Data.UUID as UUID+import Data.UUID (UUID)+import Data.Text (Text)++type CorrelationId = Text++generateCorrelationId :: IO CorrelationId+generateCorrelationId = do+  uuid <- newUUID+  return $ UUID.toText uuid++newUUID :: IO UUID+newUUID = randomIO
+ src/Network/Freddy/Request.hs view
@@ -0,0 +1,39 @@+{-# LANGUAGE OverloadedStrings #-}+module Network.Freddy.Request (+  Request (..),+  timeoutInMicroseconds,+  expirationInMs,+  newReq+) where++import Data.Text (Text, pack)+import Data.Default (Default, def)+import Data.ByteString.Lazy.Char8 (ByteString)+import qualified Data.ByteString.Lazy.Char8 as BS++data Request = Request {+  queueName :: Text,+  body :: ByteString,+  timeoutInMs :: Int,+  deleteOnTimeout :: Bool+} deriving (Show)++instance Default Request where+  def = Request {+    queueName = "localhost",+    body = BS.empty,+    timeoutInMs = 3000,+    deleteOnTimeout = True+  }++timeoutInMicroseconds :: Request -> Int+timeoutInMicroseconds = (*) 1000 . timeoutInMs++expirationInMs :: Request -> Maybe Text+expirationInMs request =+  if deleteOnTimeout request+    then Just . pack . show . timeoutInMs $ request+    else Nothing++newReq :: Request+newReq = def
+ src/Network/Freddy/ResultType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE OverloadedStrings #-}+module Network.Freddy.ResultType (ResultType (..), serializeResultType, fromText) where++import Data.Text (Text, pack)++data ResultType = Success | Error deriving (Eq)++serializeResultType :: ResultType -> Text+serializeResultType resType = case resType of+  Success -> pack "success"+  Error -> pack "error"++fromText :: Text -> ResultType+fromText text = case text of+   "success" -> Success+   _ -> Error