git.iko.soy/typeable/connexpay
on master help sign in
Log responses via a callback inside req.
commit91f3a86560c5126daadc0fb019b6d256f6a27d38 authorNick <nick@typeable.io> dateTue 1 Apr 2025, 18:10 (2 years ago) parentb051396
4 files changed+19−13
connexpay/src/Web/Connexpay/Payments.hs−1 connexpay/src/Web/Connexpay/Types.hs+15−9 connexpay/src/Web/Connexpay/Utils.hs+2−2 stack.yaml+2−1
connexpay/src/Web/Connexpay/Payments.hs−1
@@ -77,7 +77,6 @@ sendRequest' resp endpoint body =
7777 r <- if tls
7878 then reqCb POST (url https) jbody resp auth (logRequest obj)
7979 else reqCb POST (url http) jbody resp auth (logRequest obj)
80− logResponse r
8180 pure r
8281 where
8382 addGuid b =
connexpay/src/Web/Connexpay/Types.hs+15−9
@@ -10,10 +10,11 @@ import Control.Monad.Except (MonadError, ExceptT, runExceptT, throwError)
1010import Control.Monad.IO.Class
1111import Control.Monad.Reader
1212import Data.Aeson
13+import Data.ByteString (ByteString)
1314import Data.Text (Text)
1415import Data.Text qualified as Text
1516import Data.UUID (UUID)
16−import Network.HTTP.Client hiding (responseHeaders)
17+import Network.HTTP.Client as Client
1718import Network.HTTP.Req
1819import Network.HTTP.Types
1920
@@ -45,8 +46,14 @@ instance MonadHttp ConnexpayM where
4546 , Just f <- guessFailure (statusCode $ responseStatus resp) err.message = throwError (PaymentFailure f)
4647 handleHttpException (VanillaHttpException (HttpExceptionRequest _ c)) = throwError (ConnectionError $ HttpFailure c)
4748
48− getHttpConfig = do mgr <- asks (.manager)
49− pure (defaultHttpConfig { httpConfigAltManager = Just mgr })
49+ getHttpConfig =
50+ do mgr <- asks (.manager)
51+ log_ <- asks (.logAction)
52+ let cfg =
53+ defaultHttpConfig
54+ { httpConfigAltManager = Just mgr
55+ , httpConfigLogResponse = logResponse log_ }
56+ pure cfg
5057
5158
5259runConnexpay :: Connexpay -> ConnexpayM a -> IO (Either ConnexpayError a)
@@ -62,11 +69,10 @@ bearerToken :: ConnexpayM (Maybe BearerToken)
6269bearerToken = do v <- asks (.bearerToken)
6370 liftIO (readMVar v)
6471
65−logResponse :: HttpResponse r => r -> ConnexpayM ()
66−logResponse r =
67− do log_ <- asks (.logAction)
68− liftIO (log_ msg)
72+logResponse :: (Text -> IO ()) -> Request -> Response a -> ByteString -> IO ()
73+logResponse log_ _req resp body = log_ msg
6974 where msg = Text.unlines [ "Connexpay response:"
70− , "HTTP code: " <> tshow (responseCode r)
71− , "Headers: " <> tshow (responseHeaders r)
75+ , "HTTP code: " <> tshow (statusCode (responseStatus resp))
76+ , "Headers: " <> tshow (Client.responseHeaders resp)
77+ , "Body: " <> tshow body
7278 ]
connexpay/src/Web/Connexpay/Utils.hs+2−2
@@ -17,8 +17,8 @@ whenJust Nothing _ = pure ()
1717tshow :: Show a => a -> Text
1818tshow = Text.pack . show
1919
20−responseHeaders :: HttpResponse response => response -> [Header]
21−responseHeaders = Client.responseHeaders . toVanillaResponse
20+--responseHeaders :: HttpResponse response => response -> [Header]
21+--responseHeaders = Client.responseHeaders . toVanillaResponse
2222
2323responseCode :: HttpResponse response => response -> Int
2424responseCode = statusCode . Client.responseStatus . toVanillaResponse
stack.yaml+2−1
@@ -7,7 +7,8 @@ packages:
77extra-deps:
88 - git: https://github.com/typeable/bucks.git
99 commit: 9e378b675fe7fb88d5ddb3af068d82eb441f343c
10−
10+ - git: https://github.com/typeable/req.git
11+ commit: 8829ac5197f7a4b3f04b7fdfc3ea66cfe70ab0a5
1112nix:
1213 packages: [zlib]
1314local-bin-path: bin