Files
fitra-backend/utils/analytics.go
2025-08-17 01:08:22 +02:00

52 lines
1001 B
Go

package utils
import (
"bytes"
"encoding/json"
"net/http"
"os"
)
type TrackingEvent struct {
APIKey string `json:"api_key"`
SiteID string `json:"site_id"`
Type string `json:"type"`
Pathname string `json:"pathname"`
Hostname string `json:"hostname,omitempty"`
EventName string `json:"event_name,omitempty"`
Properties string `json:"properties,omitempty"`
}
func trackEvent(event TrackingEvent) error {
event.APIKey = os.Getenv("RYBBIT_API_KEY")
event.SiteID = os.Getenv("RYBBIT_SITE_ID")
if event.APIKey == "" {
return nil // Skip if no API key configured
}
jsonData, err := json.Marshal(event)
if err != nil {
return err
}
resp, err := http.Post(
"https://a.adhd.sh/api/track",
"application/json",
bytes.NewBuffer(jsonData),
)
if err != nil {
return err
}
defer resp.Body.Close()
return nil
}
func SendAnalyticsEvent(eventType, pathname string) error {
return trackEvent(TrackingEvent{
Type: eventType,
Pathname: pathname,
})
}