summaryrefslogtreecommitdiff
path: root/pkg/web/transport.go
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-04-17 12:43:54 -0600
committermo khan <mo@mokhan.ca>2025-04-17 12:43:54 -0600
commitc2446fee22eb42eada473288cd329d4b09baa687 (patch)
treeb02c6d69d05af5a1e9bddc6ef9d1532c6f7c18e1 /pkg/web/transport.go
parent812bba426cd60ff746054a5b883b5e13ca75b0ff (diff)
refactor: use mockoidc to test out id token verification
Diffstat (limited to 'pkg/web/transport.go')
-rw-r--r--pkg/web/transport.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/pkg/web/transport.go b/pkg/web/transport.go
new file mode 100644
index 0000000..b8d728a
--- /dev/null
+++ b/pkg/web/transport.go
@@ -0,0 +1,33 @@
+package web
+
+import (
+ "net/http"
+
+ "github.com/rs/zerolog"
+ "github.com/xlgmokha/x/pkg/log"
+ "github.com/xlgmokha/x/pkg/mapper"
+)
+
+type Transport struct {
+ Logger *zerolog.Logger
+}
+
+func (r *Transport) RoundTrip(request *http.Request) (*http.Response, error) {
+ ctx := r.Logger.WithContext(request.Context())
+
+ defer func() {
+ log.WithFields(ctx, mapper.MapFrom[*http.Request, log.Fields](request))
+ zerolog.Ctx(ctx).Print()
+ }()
+
+ response, err := http.DefaultTransport.RoundTrip(request)
+ if err != nil {
+ r.Logger.Err(err)
+ return response, err
+ }
+
+ log.WithFields(ctx, log.Fields{
+ "status_code": response.StatusCode,
+ })
+ return response, nil
+}