2017-08-22 28 views
2

场景:删除后,其所有通知和饲料

user:1发布的讯息:

{ actor: 'user:1', verb: 'POST_CREATE', object: 'post:1', foreign_id: 'post:1' } 

现在,user:1其次是user:2user:3user:4。他们的饲料中都有这个post。他们没有跟随在后的行动:在这个项目

user:2user:1了使用TO场通知)

{ actor: 'user:2', verb: 'POST_COMMENT', object: 'comment:1', target: 'post:1', foreign_id: 'comment:1' 
TO: ['notification:1']} 

user:3user:4喜欢:

{ actor: 'user:3', verb: 'POST_LIKE', object: 'like:1', target: 'post:1', foreign_id: 'like:1' 
TO: ['notification:1', 'notification:2']} 

{ actor: 'user:4', verb: 'POST_LIKE', object: 'like:2', target: 'post:1', foreign_id: 'like:2' 
TO: ['notification:1', 'notification:2', 'notification:3']} 

问题:

现在当user:1删除帖子时,我将如何删除其所有活动及其在Feed和通知中的引用?我想用1个API调用来完成。

如果我需要更改活动数据,请告诉我。

PS:

  • 我看过的delete activity的文件,它只是删除1个活动在时间和距离也只有1饲料..
  • 我送time与每一个活动,只是没有在这里添加。

回答

2

如果您从最初添加活动的用户1的供稿中删除活动(使用foreign_id),则删除将传播到所有以下供稿。

例如,用户1添加了一个活动,并在用户2,3和4的提要中显示。如果您尝试从用户2的提要中删除活动,例如,它只会从该活动中删除该活动用户,而不是其他人。

更新也会发生同样的情况。您更新原始活动,它将向下传播到以下提要。更新必须有原始foreign_idtime字段虽然,你不能改变这些。

+0

谢谢伊恩,它清除了单个活动的删除。但是,如何删除我在问题中详细定义的'post' *的所有活动,方法是创建场景和实际数据*。我将如何实现这一目标?在这种情况下,所有4个活动*(发布后,评论,like1,like2)*以及它们在Feed和通知中的传播。 – Shaharyar

+1

啊,我错过了关于从通知Feed中删除的最后一点。即使您在任何地方都使用相同的foreign_id,我们也无法做到这一点。在你的例子中,你为user:2添加了“comment”,为user:3和user:4添加了“likes”,可能这些将分别进入你的用户:2,user:3和user4 flat feed。从他们的用户删除活动:2,用户:3和用户:4提要将向下传播到提要和任何追随者提要。无法通过单个API调用完成此操作。 – iandouglas