diff --git a/PaymentServer.cabal b/PaymentServer.cabal index a7656536887160c36898ced10c9542f4c6954112..b29d04b62e5fc4d000c50e788f836720f41335e3 100644 --- a/PaymentServer.cabal +++ b/PaymentServer.cabal @@ -23,6 +23,8 @@ library , servant , servant-server , wai + , wai-extra + , data-default , warp , stripe-core , text diff --git a/src/PaymentServer/Main.hs b/src/PaymentServer/Main.hs index 060502baef9334f81e4602d1b9b6523ca6a9cff8..cf965e608f1e8b3f4c7653f51911cbb5693dcb84 100644 --- a/src/PaymentServer/Main.hs +++ b/src/PaymentServer/Main.hs @@ -6,6 +6,9 @@ module PaymentServer.Main ( main ) where +import Data.Default + ( def + ) import Servant ( Proxy(Proxy) , Server @@ -16,6 +19,14 @@ import Servant import Network.Wai.Handler.Warp ( run ) +import Network.Wai.Middleware.RequestLogger + ( OutputFormat(Detailed, CustomOutputFormatWithDetails) + , outputFormat + , mkRequestLogger + ) +import Network.Wai.Middleware.RequestLogger.JSON + ( formatAsJSON + ) import PaymentServer.Persistence ( VoucherDatabase , memory @@ -37,4 +48,8 @@ paymentServerApp :: VoucherDatabase d => d -> Application paymentServerApp = (serve paymentServerAPI) . paymentServer main :: IO () -main = memory >>= return . paymentServerApp >>= run 8081 +main = do + db <- memory + let app = paymentServerApp db + logger <- mkRequestLogger $ def { outputFormat = Detailed True} + run 8081 $ logger app