module Patrol.Type.EventProcessingError where
import qualified Data.Aeson as Aeson
import qualified Data.Text as Text
import qualified Patrol.Extra.Aeson as Aeson
import qualified Patrol.Type.ErrorType as ErrorType
data EventProcessingError = EventProcessingError
{ EventProcessingError -> Text
name :: Text.Text,
EventProcessingError -> ErrorType
type_ :: ErrorType.ErrorType,
EventProcessingError -> Value
value :: Aeson.Value
}
deriving (EventProcessingError -> EventProcessingError -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EventProcessingError -> EventProcessingError -> Bool
$c/= :: EventProcessingError -> EventProcessingError -> Bool
== :: EventProcessingError -> EventProcessingError -> Bool
$c== :: EventProcessingError -> EventProcessingError -> Bool
Eq, Int -> EventProcessingError -> ShowS
[EventProcessingError] -> ShowS
EventProcessingError -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EventProcessingError] -> ShowS
$cshowList :: [EventProcessingError] -> ShowS
show :: EventProcessingError -> String
$cshow :: EventProcessingError -> String
showsPrec :: Int -> EventProcessingError -> ShowS
$cshowsPrec :: Int -> EventProcessingError -> ShowS
Show)
instance Aeson.ToJSON EventProcessingError where
toJSON :: EventProcessingError -> Value
toJSON EventProcessingError
eventProcessingError =
[Pair] -> Value
Aeson.intoObject
[ forall a. ToJSON a => String -> a -> Pair
Aeson.pair String
"name" forall a b. (a -> b) -> a -> b
$ EventProcessingError -> Text
name EventProcessingError
eventProcessingError,
forall a. ToJSON a => String -> a -> Pair
Aeson.pair String
"type" forall a b. (a -> b) -> a -> b
$ EventProcessingError -> ErrorType
type_ EventProcessingError
eventProcessingError,
forall a. ToJSON a => String -> a -> Pair
Aeson.pair String
"value" forall a b. (a -> b) -> a -> b
$ EventProcessingError -> Value
value EventProcessingError
eventProcessingError
]
empty :: EventProcessingError
empty :: EventProcessingError
empty =
EventProcessingError
{ name :: Text
name = Text
Text.empty,
type_ :: ErrorType
type_ = ErrorType
ErrorType.UnknownError,
value :: Value
value = Value
Aeson.Null
}