Emit events when favorites are added/removed

This commit is contained in:
André Duffeck
2026-03-09 15:14:37 +01:00
parent 3402390b69
commit 58db915775

View File

@@ -6,7 +6,9 @@ import (
rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1"
provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
"github.com/opencloud-eu/opencloud/services/graph/pkg/errorcode"
revaCtx "github.com/opencloud-eu/reva/v2/pkg/ctx"
revactx "github.com/opencloud-eu/reva/v2/pkg/ctx"
"github.com/opencloud-eu/reva/v2/pkg/events"
)
// FollowDriveItem marks a drive item as favorite.
@@ -73,6 +75,20 @@ func (g Graph) FollowDriveItem(w http.ResponseWriter, r *http.Request) {
return
}
if g.eventsPublisher != nil {
ev := events.FavoriteAdded{
Ref: &provider.Reference{
ResourceId: &itemID,
Path: ".",
},
UserID: u.Id,
Executant: revaCtx.ContextMustGetUser(r.Context()).Id,
}
if err := events.Publish(r.Context(), g.eventsPublisher, ev); err != nil {
g.logger.Error().Err(err).Msg("Failed to publish FavoriteAdded event")
}
}
w.WriteHeader(http.StatusCreated)
}
@@ -125,5 +141,19 @@ func (g Graph) UnfollowDriveItem(w http.ResponseWriter, r *http.Request) {
return
}
if g.eventsPublisher != nil {
ev := events.FavoriteRemoved{
Ref: &provider.Reference{
ResourceId: &itemID,
Path: ".",
},
UserID: u.Id,
Executant: revaCtx.ContextMustGetUser(r.Context()).Id,
}
if err := events.Publish(r.Context(), g.eventsPublisher, ev); err != nil {
g.logger.Error().Err(err).Msg("Failed to publish FavoriteRemoved event")
}
}
w.WriteHeader(http.StatusNoContent)
}