module Mongrel2.Types
( ClientID
, Request(..)
, UUID
) where
import Data.ByteString (ByteString)
import Data.Int (Int64)
import Data.Text (Text)
import Network.HTTP.Types (Ascii, HttpVersion, RequestHeaders, StdMethod, Query)
-- | Client identifier from Mongrel2. This identifies the currently
-- connected client uniquely.
type ClientID = Int64
-- | UUID for communicating with Mongrel2.
type UUID = ByteString
-- | Request information.
data Request = Request {
-- ^ Request path
reqPath :: [Text],
-- | Query part of the request
reqQuery :: Query,
-- | Raw request path including query part.
reqRawPath :: ByteString,
-- | Request method (GET, POST, etc.)
reqMethod :: Either Ascii StdMethod,
-- | HTTP version
reqVersion :: HttpVersion,
-- | Request headers
reqHeaders :: RequestHeaders,
-- | Request body.
reqBody :: ByteString,
-- | UUID of the connected Mongrel2 server.
reqServerUUID :: UUID,
-- | ID of the connected client browser.
reqClientID :: ClientID
} deriving (Show)