Emit events when favorites are added/removed
This commit is contained in:
@@ -6,7 +6,9 @@ import (
|
|||||||
rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1"
|
rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1"
|
||||||
provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
|
provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
|
||||||
"github.com/opencloud-eu/opencloud/services/graph/pkg/errorcode"
|
"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"
|
revactx "github.com/opencloud-eu/reva/v2/pkg/ctx"
|
||||||
|
"github.com/opencloud-eu/reva/v2/pkg/events"
|
||||||
)
|
)
|
||||||
|
|
||||||
// FollowDriveItem marks a drive item as favorite.
|
// FollowDriveItem marks a drive item as favorite.
|
||||||
@@ -73,6 +75,20 @@ func (g Graph) FollowDriveItem(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
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)
|
w.WriteHeader(http.StatusCreated)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,5 +141,19 @@ func (g Graph) UnfollowDriveItem(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
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)
|
w.WriteHeader(http.StatusNoContent)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user