From c9b29c5c3dca2eb1640774d4c3bd0fd0f92012e8 Mon Sep 17 00:00:00 2001 From: Alexander Date: Mon, 12 May 2025 14:57:22 +0200 Subject: [PATCH] feat(custom): parse custom event's payload and use the predefined timestamp as a correct ts for our messages --- backend/internal/db/datasaver/web.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/backend/internal/db/datasaver/web.go b/backend/internal/db/datasaver/web.go index 439bcec32..108e6a01b 100644 --- a/backend/internal/db/datasaver/web.go +++ b/backend/internal/db/datasaver/web.go @@ -2,6 +2,7 @@ package datasaver import ( "context" + "encoding/json" "openreplay/backend/pkg/db/postgres" "openreplay/backend/pkg/db/types" @@ -63,6 +64,14 @@ func (s *saverImpl) handleWebMessage(sessCtx context.Context, session *sessions. s.pg.InsertAutocompleteValue(session.SessionID, session.ProjectID, "USERANONYMOUSID", m.ID) return nil case *messages.CustomEvent: + // Try to parse custom event payload to JSON and extract or_payload field + type CustomEventPayload struct { + CustomTimestamp uint64 `json:"or_timestamp"` + } + customPayload := &CustomEventPayload{} + if err := json.Unmarshal([]byte(m.Payload), customPayload); err == nil { + m.Timestamp = customPayload.CustomTimestamp + } if err := s.pg.InsertWebCustomEvent(session, m); err != nil { return err }