mirror of
https://github.com/foomo/sesamy-go.git
synced 2025-10-16 12:35:43 +00:00
feat: add engagement time middleware
This commit is contained in:
parent
8c170e83ad
commit
12c8d87600
@ -151,14 +151,34 @@ func MiddlewareIPOverride(next MiddlewareHandler) MiddlewareHandler {
|
||||
}
|
||||
}
|
||||
|
||||
func MiddlewareEngagementTime(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 value, ok := event.Params.(map[string]any); ok {
|
||||
value["engagement_time_msec"] = 100
|
||||
payload.Events[i] = event
|
||||
}
|
||||
}
|
||||
return next(l, w, r, payload)
|
||||
}
|
||||
}
|
||||
func MiddlewarePageLocation(next MiddlewareHandler) MiddlewareHandler {
|
||||
return func(l *zap.Logger, w http.ResponseWriter, 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
|
||||
pageTitle := r.Header.Get("X-Page-Title")
|
||||
pageLocation := r.Header.Get("Referer")
|
||||
pageReferrer := r.Header.Get("X-Page-Referrer")
|
||||
for i, event := range payload.Events {
|
||||
if value, ok := event.Params.(map[string]any); ok {
|
||||
if value["page_title"] == "" && pageTitle != "" {
|
||||
value["page_title"] = pageTitle
|
||||
}
|
||||
if value["page_referrer"] == "" && pageReferrer != "" {
|
||||
value["page_referrer"] = pageReferrer
|
||||
}
|
||||
if value["page_location"] == "" && pageLocation != "" {
|
||||
value["page_location"] = pageLocation
|
||||
}
|
||||
payload.Events[i] = event
|
||||
}
|
||||
}
|
||||
return next(l, w, r, payload)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user