From 6350234db497749c7bd445956b0f53e8f91c33f2 Mon Sep 17 00:00:00 2001 From: Eray Date: Thu, 30 Mar 2023 05:07:10 +0300 Subject: [PATCH] feat: eventTime support --- connector.go | 6 +++--- couchbase/event.go | 12 +++++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/connector.go b/connector.go index 111bbb1..7594635 100644 --- a/connector.go +++ b/connector.go @@ -44,11 +44,11 @@ func (c *connector) produce(ctx *models.ListenerContext) { var e couchbase.Event switch event := ctx.Event.(type) { case models.DcpMutation: - e = couchbase.NewMutateEvent(event.Key, event.Value, event.CollectionName) + e = couchbase.NewMutateEvent(event.Key, event.Value, event.CollectionName, event.EventTime) case models.DcpExpiration: - e = couchbase.NewExpireEvent(event.Key, nil, event.CollectionName) + e = couchbase.NewExpireEvent(event.Key, nil, event.CollectionName, event.EventTime) case models.DcpDeletion: - e = couchbase.NewDeleteEvent(event.Key, nil, event.CollectionName) + e = couchbase.NewDeleteEvent(event.Key, nil, event.CollectionName, event.EventTime) default: return } diff --git a/couchbase/event.go b/couchbase/event.go index 2f926ac..55d030e 100644 --- a/couchbase/event.go +++ b/couchbase/event.go @@ -1,7 +1,10 @@ package couchbase +import "time" + type Event struct { CollectionName string + EventTime time.Time Key []byte Value []byte IsDeleted bool @@ -9,29 +12,32 @@ type Event struct { IsMutated bool } -func NewDeleteEvent(key []byte, value []byte, collectionName string) Event { +func NewDeleteEvent(key []byte, value []byte, collectionName string, eventTime time.Time) Event { return Event{ Key: key, Value: value, IsDeleted: true, CollectionName: collectionName, + EventTime: eventTime, } } -func NewExpireEvent(key []byte, value []byte, collectionName string) Event { +func NewExpireEvent(key []byte, value []byte, collectionName string, eventTime time.Time) Event { return Event{ Key: key, Value: value, IsExpired: true, CollectionName: collectionName, + EventTime: eventTime, } } -func NewMutateEvent(key []byte, value []byte, collectionName string) Event { +func NewMutateEvent(key []byte, value []byte, collectionName string, eventTime time.Time) Event { return Event{ Key: key, Value: value, IsMutated: true, CollectionName: collectionName, + EventTime: eventTime, } }