feat: add sendpayload

This commit is contained in:
Kevin Franklin Kim 2024-11-25 13:41:46 +01:00
parent 478b678a6e
commit 6680fbb169
No known key found for this signature in database
2 changed files with 14 additions and 9 deletions

View File

@ -6,7 +6,6 @@ import (
"fmt"
"io"
"net/http"
"time"
"github.com/foomo/sesamy-go/pkg/encoding/mpv2"
"github.com/foomo/sesamy-go/pkg/sesamy"
@ -110,16 +109,14 @@ func (c *MPv2) HTTPClient() *http.Client {
// ------------------------------------------------------------------------------------------------
func (c *MPv2) Collect(r *http.Request, events ...sesamy.AnyEvent) error {
anyEvents := make([]sesamy.Event[any], len(events))
for i, event := range events {
anyEvents[i] = event.AnyEvent()
}
payload := &mpv2.Payload[any]{
Events: anyEvents,
TimestampMicros: time.Now().UnixMicro(),
payload := mpv2.NewPayload[any]()
for _, event := range events {
payload.Events = append(payload.Events, event.AnyEvent())
}
return c.SendPayload(r, payload)
}
func (c *MPv2) SendPayload(r *http.Request, payload *mpv2.Payload[any]) error {
next := c.SendRaw
for _, middleware := range c.middlewares {
next = middleware(next)

View File

@ -1,6 +1,8 @@
package mpv2
import (
"time"
"github.com/foomo/sesamy-go/pkg/sesamy"
)
@ -17,3 +19,9 @@ type Payload[P any] struct {
SessionID string `json:"session_id,omitempty"`
EngagementTimeMSec int64 `json:"engagement_time_msec,omitempty"`
}
func NewPayload[P any]() *Payload[P] {
return &Payload[P]{
TimestampMicros: time.Now().UnixMicro(),
}
}