diff --git a/pkg/client/mpv2middleware.go b/pkg/client/mpv2middleware.go index cd23ed5..5670d99 100644 --- a/pkg/client/mpv2middleware.go +++ b/pkg/client/mpv2middleware.go @@ -61,52 +61,3 @@ func MPv2MiddlewareUserID(cookieName string) MPv2Middleware { } } } - -func MPv2MiddlewareUserAgent(next MPv2Handler) MPv2Handler { - return func(r *http.Request, payload *mpv2.Payload[any]) error { - if userAgent := r.Header.Get("User-Agent"); userAgent != "" { - for i, event := range payload.Events { - if value, ok := event.Params.(map[string]any); ok { - value["user_agent"] = userAgent - } - payload.Events[i] = event - } - } - return next(r, payload) - } -} - -func MPv2MiddlewareIPOverride(next MPv2Handler) MPv2Handler { - return func(r *http.Request, payload *mpv2.Payload[any]) error { - var ipOverride string - for _, key := range []string{"CF-Connecting-IP", "X-Original-Forwarded-For", "X-Forwarded-For", "X-Real-Ip"} { - if value := r.Header.Get(key); value != "" { - ipOverride = value - break - } - } - if ipOverride != "" { - for i, event := range payload.Events { - if value, ok := event.Params.(map[string]any); ok { - value["ip_override"] = ipOverride - } - payload.Events[i] = event - } - } - return next(r, payload) - } -} - -func MPv2MiddlewarePageLocation(next MPv2Handler) MPv2Handler { - return func(r *http.Request, payload *mpv2.Payload[any]) error { - if referrer := r.Header.Get("Referer"); referrer != "" { - for i, event := range payload.Events { - if value, ok := event.Params.(map[string]any); ok { - value["page_location"] = referrer - } - payload.Events[i] = event - } - } - return next(r, payload) - } -} diff --git a/pkg/http/eventhandler.go b/pkg/http/eventhandler.go index 48a5ce1..de10be5 100644 --- a/pkg/http/eventhandler.go +++ b/pkg/http/eventhandler.go @@ -4,6 +4,7 @@ import ( "net/http" "github.com/foomo/sesamy-go/pkg/sesamy" + "go.uber.org/zap" ) -type EventHandler func(r *http.Request, event *sesamy.Event[any]) error +type EventHandler func(l *zap.Logger, r *http.Request, event *sesamy.Event[any]) error diff --git a/pkg/http/gtag/middleware.go b/pkg/http/gtag/middleware.go index b6bfa9a..c2ee813 100644 --- a/pkg/http/gtag/middleware.go +++ b/pkg/http/gtag/middleware.go @@ -27,7 +27,7 @@ func MiddlewareEventHandler(h sesamyhttp.EventHandler) Middleware { } for i, event := range mpv2Payload.Events { - if err := h(r, &event); err != nil { + if err := h(l, r, &event); err != nil { return err } mpv2Payload.Events[i] = event diff --git a/pkg/http/mpv2/middleware.go b/pkg/http/mpv2/middleware.go index 1fcbb38..bcb3fb6 100644 --- a/pkg/http/mpv2/middleware.go +++ b/pkg/http/mpv2/middleware.go @@ -22,7 +22,7 @@ func MiddlewareEventHandler(h sesamyhttp.EventHandler) Middleware { return func(next MiddlewareHandler) MiddlewareHandler { return func(l *zap.Logger, w http.ResponseWriter, r *http.Request, payload *mpv2.Payload[any]) error { for i, event := range payload.Events { - if err := h(r, &event); err != nil { + if err := h(l, r, &event); err != nil { return err } payload.Events[i] = event @@ -100,8 +100,9 @@ func MiddlewareUserAgent(next MiddlewareHandler) MiddlewareHandler { for i, event := range payload.Events { if value, ok := event.Params.(map[string]any); ok { value["user_agent"] = userAgent + event.Params = value + payload.Events[i] = event } - payload.Events[i] = event } } return next(l, w, r, payload) @@ -121,8 +122,9 @@ func MiddlewareIPOverride(next MiddlewareHandler) MiddlewareHandler { for i, event := range payload.Events { if value, ok := event.Params.(map[string]any); ok { value["ip_override"] = ipOverride + event.Params = value + payload.Events[i] = event } - payload.Events[i] = event } } return next(l, w, r, payload) @@ -135,8 +137,9 @@ func MiddlewarePageLocation(next MiddlewareHandler) MiddlewareHandler { for i, event := range payload.Events { if value, ok := event.Params.(map[string]any); ok { value["page_location"] = referrer + event.Params = value + payload.Events[i] = event } - payload.Events[i] = event } } return next(l, w, r, payload)