yam-0.6.1: src/Yam/Middleware/Error.hs
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# LANGUAGE ImplicitParams #-}
module Yam.Middleware.Error where
import Control.Monad.Logger.CallStack
import Network.Wai
import Servant
import Yam.App
import Yam.Logger
import Yam.Prelude
errorMiddleware :: HasLogger cxt => Context cxt -> Middleware
errorMiddleware cxt app req resH = app req resH `catch` (\e -> go e >> resH (whenException e))
where
go = runVault cxt (vault req) . logErrorCS ?callStack . showText