packages feed

bugsnag-types-1.1.1.0: src/Data/Bugsnag/Types/SessionEvent.hs

module Data.Bugsnag.Types.SessionEvent
  ( SessionEvent (..)
  , exampleSessionEvent
  , defaultSessionEvent
  )
where

import Data.Bugsnag.Types.Prelude

-- | Details of the number of handled and unhandled events that have occurred
-- so far in this session.
data SessionEvent = SessionEvent
  { handled :: Int
  -- ^ The number of handled events that have occurred in this session
  -- (including this event).
  , unhandled :: Int
  -- ^ The number of unhandled events that have occurred in this session
  -- (including this event)
  }
  deriving stock (Eq, Generic, Show)

instance FromJSON SessionEvent where
  parseJSON = genericParseJSON aesonOptions

instance ToJSON SessionEvent where
  toJSON = genericToJSON aesonOptions
  toEncoding = genericToEncoding aesonOptions

defaultSessionEvent :: Int -> Int -> SessionEvent
defaultSessionEvent handled unhandled =
  SessionEvent
    { handled
    , unhandled
    }

exampleSessionEvent :: SessionEvent
exampleSessionEvent =
  SessionEvent
    { handled = 1
    , unhandled = 1
    }