From 5f6c13147782abbb81affcc83a8b583c813a1b2e Mon Sep 17 00:00:00 2001 From: jkoberg Date: Wed, 20 Mar 2024 11:54:51 +0100 Subject: [PATCH] add initiatorid to sse event Signed-off-by: jkoberg --- services/clientlog/pkg/service/events.go | 1 + services/clientlog/pkg/service/service.go | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/services/clientlog/pkg/service/events.go b/services/clientlog/pkg/service/events.go index 48a3831d0e..fd10948bdd 100644 --- a/services/clientlog/pkg/service/events.go +++ b/services/clientlog/pkg/service/events.go @@ -5,4 +5,5 @@ type FileEvent struct { ParentItemID string `json:"parentitemid"` ItemID string `json:"itemid"` SpaceID string `json:"spaceid"` + InitiatorID string `json:"initiatorid"` } diff --git a/services/clientlog/pkg/service/service.go b/services/clientlog/pkg/service/service.go index e4143b770f..73398cb6be 100644 --- a/services/clientlog/pkg/service/service.go +++ b/services/clientlog/pkg/service/service.go @@ -100,7 +100,7 @@ func (cl *ClientlogService) processEvent(event events.Event) { err = errors.New("unhandled event") case events.UploadReady: evType = "postprocessing-finished" - users, data, err = processFileEvent(ctx, e.FileRef, gwc) + users, data, err = processFileEvent(ctx, e.FileRef, gwc, "") case events.ItemTrashed: evType = "item-trashed" @@ -120,7 +120,8 @@ func (cl *ClientlogService) processEvent(event events.Event) { ItemID: storagespace.FormatResourceID(*e.ID), // TODO: check with web if parentID is needed // ParentItemID: storagespace.FormatResourceID(*item.GetRef().GetResourceId()), - SpaceID: storagespace.FormatStorageID(e.ID.GetStorageId(), e.ID.GetSpaceId()), + SpaceID: storagespace.FormatStorageID(e.ID.GetStorageId(), e.ID.GetSpaceId()), + InitiatorID: event.InitiatorID, } users, err = utils.GetSpaceMembers(ctx, e.ID.GetSpaceId(), gwc, utils.ViewerRole) @@ -129,23 +130,23 @@ func (cl *ClientlogService) processEvent(event events.Event) { } case events.ItemRestored: evType = "item-restored" - users, data, err = processFileEvent(ctx, e.Ref, gwc) + users, data, err = processFileEvent(ctx, e.Ref, gwc, event.InitiatorID) case events.ContainerCreated: evType = "folder-created" - users, data, err = processFileEvent(ctx, e.Ref, gwc) + users, data, err = processFileEvent(ctx, e.Ref, gwc, event.InitiatorID) case events.ItemMoved: // we are only interested in the rename case if !utils.ResourceIDEqual(e.OldReference.GetResourceId(), e.Ref.GetResourceId()) || e.Ref.GetPath() == e.OldReference.GetPath() { return } evType = "item-renamed" - users, data, err = processFileEvent(ctx, e.Ref, gwc) + users, data, err = processFileEvent(ctx, e.Ref, gwc, event.InitiatorID) case events.FileLocked: evType = "file-locked" - users, data, err = processFileEvent(ctx, e.Ref, gwc) + users, data, err = processFileEvent(ctx, e.Ref, gwc, event.InitiatorID) case events.FileUnlocked: evType = "file-unlocked" - users, data, err = processFileEvent(ctx, e.Ref, gwc) + users, data, err = processFileEvent(ctx, e.Ref, gwc, event.InitiatorID) } if err != nil { @@ -173,7 +174,7 @@ func (cl *ClientlogService) sendSSE(userIDs []string, evType string, data interf }) } -func processFileEvent(ctx context.Context, ref *provider.Reference, gwc gateway.GatewayAPIClient) ([]string, FileEvent, error) { +func processFileEvent(ctx context.Context, ref *provider.Reference, gwc gateway.GatewayAPIClient, initiatorid string) ([]string, FileEvent, error) { info, err := utils.GetResource(ctx, ref, gwc) if err != nil { return nil, FileEvent{}, err @@ -183,6 +184,7 @@ func processFileEvent(ctx context.Context, ref *provider.Reference, gwc gateway. ParentItemID: storagespace.FormatResourceID(*info.GetParentId()), ItemID: storagespace.FormatResourceID(*info.GetId()), SpaceID: storagespace.FormatStorageID(info.GetSpace().GetRoot().GetStorageId(), info.GetSpace().GetRoot().GetSpaceId()), + InitiatorID: initiatorid, } users, err := utils.GetSpaceMembers(ctx, info.GetSpace().GetId().GetOpaqueId(), gwc, utils.ViewerRole)