module Network.Bugsnag.Severity
( BugsnagSeverity(..)
, BugsnagSeverityReason(..)
, BugsnagSeverityReasonAttributes(..)
, bugsnagSeverityReasonAttributes
, BugsnagSeverityReasonType(..)
) where
import Data.Aeson
import Data.Aeson.Ext
import Data.Text (Text)
import GHC.Generics
data BugsnagSeverity
= ErrorSeverity
| WarningSeverity
| InfoSeverity
deriving Generic
instance ToJSON BugsnagSeverity where
toJSON = genericToJSON $ bsAesonOptions "Severity"
toEncoding = genericToEncoding $ bsAesonOptions "Severity"
data BugsnagSeverityReasonType
= UnhandledExceptionReasonType
| UnhandledErrorReasonType
| LogReasonType
| SignalReasonType
| StrictModeReasonType
| UnhandledPromiseRejectionReasonType
| CallbackErrorInterceptReasonType
| ErrorClassReasonType
| UnhandledPanicReasonType
| UserCallbackSetSeverityReasonType
| UserSpecifiedSeverityReasonType
| HandledExceptionReasonType
| HandledErrorReasonType
| HandledPanicReasonType
| UserContextSetSeverityReasonType
deriving Generic
instance ToJSON BugsnagSeverityReasonType where
toJSON = genericToJSON $ bsAesonOptions "ReasonType"
toEncoding = genericToEncoding $ bsAesonOptions "ReasonType"
data BugsnagSeverityReasonAttributes = BugsnagSeverityReasonAttributes
{ bsraErrorType :: Maybe Text
, bsraLevel :: Maybe Text
, bsraSignalType :: Maybe Text
, bsraViolationType :: Maybe Text
, bsraErrorClass :: Maybe Text
}
deriving Generic
instance ToJSON BugsnagSeverityReasonAttributes where
toJSON = genericToJSON $ bsAesonOptions "bsra"
toEncoding = genericToEncoding $ bsAesonOptions "bsra"
data BugsnagSeverityReason = BugsnagSeverityReason
{ bsrType :: BugsnagSeverityReasonType
, bsrAttributes :: BugsnagSeverityReasonAttributes
}
deriving Generic
instance ToJSON BugsnagSeverityReason where
toJSON = genericToJSON $ bsAesonOptions "bsr"
toEncoding = genericToEncoding $ bsAesonOptions "bsr"
bugsnagSeverityReasonAttributes :: BugsnagSeverityReasonAttributes
bugsnagSeverityReasonAttributes = BugsnagSeverityReasonAttributes
{ bsraErrorType = Nothing
, bsraLevel = Nothing
, bsraSignalType = Nothing
, bsraViolationType = Nothing
, bsraErrorClass = Nothing
}