src/Network/Freddy/Request.hs
{-# 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