packages feed

freckle-app-1.9.0.0: library/Freckle/App/OpenTelemetry.hs

module Freckle.App.OpenTelemetry
  ( MonadTracer(..)
  ) where

import Freckle.App.Prelude

import Network.AWS.XRayClient.WAI (XRayVaultData, vaultDataFromRequest)
import Yesod.Core (HandlerFor, waiRequest)

-- | Class for reading 'XRayVaultData'
--
-- This is named the same as the OpenTelemetry class we'll use once we move to
-- that tracing system
--
class MonadTracer m where
  getVaultData :: m (Maybe XRayVaultData)

instance MonadTracer (HandlerFor app) where
  getVaultData = vaultDataFromRequest <$> waiRequest