{-# LANGUAGE DeriveGeneric #-}
{-|
Module : Rollbar.Item.Level
Description : The severity of the item.
Copyright : (c) Hardy Jones, 2017
License : BSD3
Maintainer : jones3.hardy@gmail.com
Stability : experimental
-}
module Rollbar.Item.Level
( Level(..)
) where
import Data.Aeson
( ToJSON
, defaultOptions
, genericToEncoding
, genericToJSON
, toEncoding
, toJSON
)
import Data.Aeson.Types (constructorTagModifier)
import Data.Char (toLower)
import GHC.Generics (Generic)
-- | Corresponds to the levels Rollbar allows in order of severity.
data Level
= Debug
| Info
| Warning
| Error
| Critical
deriving (Bounded, Enum, Eq, Generic, Ord, Show)
instance ToJSON Level where
toJSON = genericToJSON defaultOptions
{ constructorTagModifier = fmap toLower
}
toEncoding = genericToEncoding defaultOptions
{ constructorTagModifier = fmap toLower
}