{-# 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