{-# LANGUAGE DeriveGeneric #-}
module Network.Wai.Middleware.Rollbar.Payload where
import Data.Aeson (ToJSON, defaultOptions, genericToEncoding, toEncoding)
import GHC.Generics (Generic)
import qualified Data.Text as T
data Payload
= RequestPayload
{ statusCode :: Int
, statusMessage :: T.Text
, userAgent :: Maybe T.Text
, range :: Maybe T.Text
, referer :: Maybe T.Text
}
| ExceptionPayload
{ exception :: T.Text
, userAgent :: Maybe T.Text
, range :: Maybe T.Text
, referer :: Maybe T.Text
}
deriving (Generic, Show)
instance ToJSON Payload where
toEncoding = genericToEncoding defaultOptions