mirror of
https://github.com/foomo/sesamy-go.git
synced 2025-10-16 12:35:43 +00:00
75 lines
1.6 KiB
Go
75 lines
1.6 KiB
Go
package v2
|
|
|
|
import (
|
|
"net/http"
|
|
"net/url"
|
|
"strings"
|
|
)
|
|
|
|
func MiddlewareRichsstsse(next ClientHandler) ClientHandler {
|
|
v := ""
|
|
return func(r *http.Request, event *Event) error {
|
|
event.Richsstsse = &v
|
|
return nil
|
|
}
|
|
}
|
|
|
|
func MiddlewareTrackingID(v string) ClientMiddleware {
|
|
return func(next ClientHandler) ClientHandler {
|
|
return func(r *http.Request, event *Event) error {
|
|
event.TrackingID = &v
|
|
return nil
|
|
}
|
|
}
|
|
}
|
|
|
|
func MiddlewarProtocolVersion(v string) ClientMiddleware {
|
|
return func(next ClientHandler) ClientHandler {
|
|
return func(r *http.Request, event *Event) error {
|
|
event.ProtocolVersion = &v
|
|
return nil
|
|
}
|
|
}
|
|
}
|
|
|
|
func MiddlewarIgnoreReferrer(v string) ClientMiddleware {
|
|
return func(next ClientHandler) ClientHandler {
|
|
return func(r *http.Request, event *Event) error {
|
|
event.IgnoreReferrer = &v
|
|
return nil
|
|
}
|
|
}
|
|
}
|
|
|
|
func MiddlewarDebug(next ClientHandler) ClientHandler {
|
|
v := "1"
|
|
return func(r *http.Request, event *Event) error {
|
|
if value, _ := r.Cookie("gtm_debug"); value != nil {
|
|
event.IsDebug = &v
|
|
}
|
|
return nil
|
|
}
|
|
}
|
|
|
|
func MiddlewarClientID(next ClientHandler) ClientHandler {
|
|
return func(r *http.Request, event *Event) error {
|
|
if value, _ := r.Cookie("_ga"); value != nil {
|
|
clientID := strings.TrimPrefix(value.Value, "GA1.1.")
|
|
event.ClientID = &clientID
|
|
}
|
|
return nil
|
|
}
|
|
}
|
|
|
|
func MiddlewarDocument(next ClientHandler) ClientHandler {
|
|
return func(r *http.Request, event *Event) error {
|
|
if referrer, err := url.Parse(r.Referer()); err != nil {
|
|
return err
|
|
} else {
|
|
event.DocumentLocation = &referrer.Path
|
|
event.DocumentHostname = &referrer.Host
|
|
}
|
|
return nil
|
|
}
|
|
}
|