aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/lib/activitypub/send/send-undo.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib/activitypub/send/send-undo.ts')
-rw-r--r--server/lib/activitypub/send/send-undo.ts29
1 files changed, 25 insertions, 4 deletions
diff --git a/server/lib/activitypub/send/send-undo.ts b/server/lib/activitypub/send/send-undo.ts
index bd49d452e..adee2192f 100644
--- a/server/lib/activitypub/send/send-undo.ts
+++ b/server/lib/activitypub/send/send-undo.ts
@@ -1,5 +1,12 @@
1import { Transaction } from 'sequelize' 1import { Transaction } from 'sequelize'
2import { ActivityAudience, ActivityCreate, ActivityFollow, ActivityLike, ActivityUndo } from '../../../../shared/models/activitypub' 2import {
3 ActivityAnnounce,
4 ActivityAudience,
5 ActivityCreate,
6 ActivityFollow,
7 ActivityLike,
8 ActivityUndo
9} from '../../../../shared/models/activitypub'
3import { ActorModel } from '../../../models/activitypub/actor' 10import { ActorModel } from '../../../models/activitypub/actor'
4import { ActorFollowModel } from '../../../models/activitypub/actor-follow' 11import { ActorFollowModel } from '../../../models/activitypub/actor-follow'
5import { VideoModel } from '../../../models/video/video' 12import { VideoModel } from '../../../models/video/video'
@@ -16,6 +23,8 @@ import {
16import { createActivityData, createDislikeActivityData } from './send-create' 23import { createActivityData, createDislikeActivityData } from './send-create'
17import { followActivityData } from './send-follow' 24import { followActivityData } from './send-follow'
18import { likeActivityData } from './send-like' 25import { likeActivityData } from './send-like'
26import { VideoShareModel } from '../../../models/video/video-share'
27import { buildVideoAnnounce } from './send-announce'
19 28
20async function sendUndoFollow (actorFollow: ActorFollowModel, t: Transaction) { 29async function sendUndoFollow (actorFollow: ActorFollowModel, t: Transaction) {
21 const me = actorFollow.ActorFollower 30 const me = actorFollow.ActorFollower
@@ -58,7 +67,7 @@ async function sendUndoDislike (byActor: ActorModel, video: VideoModel, t: Trans
58 67
59 const actorsInvolvedInVideo = await getActorsInvolvedInVideo(video, t) 68 const actorsInvolvedInVideo = await getActorsInvolvedInVideo(video, t)
60 const dislikeActivity = createDislikeActivityData(byActor, video) 69 const dislikeActivity = createDislikeActivityData(byActor, video)
61 const object = await createActivityData(undoUrl, byActor, dislikeActivity, t) 70 const object = await createActivityData(dislikeUrl, byActor, dislikeActivity, t)
62 71
63 if (video.isOwned() === false) { 72 if (video.isOwned() === false) {
64 const audience = getOriginVideoAudience(video, actorsInvolvedInVideo) 73 const audience = getOriginVideoAudience(video, actorsInvolvedInVideo)
@@ -73,12 +82,24 @@ async function sendUndoDislike (byActor: ActorModel, video: VideoModel, t: Trans
73 return broadcastToFollowers(data, byActor, actorsInvolvedInVideo, t, followersException) 82 return broadcastToFollowers(data, byActor, actorsInvolvedInVideo, t, followersException)
74} 83}
75 84
85async function sendUndoAnnounce (byActor: ActorModel, videoShare: VideoShareModel, video: VideoModel, t: Transaction) {
86 const undoUrl = getUndoActivityPubUrl(videoShare.url)
87
88 const actorsInvolvedInVideo = await getActorsInvolvedInVideo(video, t)
89 const object = await buildVideoAnnounce(byActor, videoShare, video, t)
90 const data = await undoActivityData(undoUrl, byActor, object, t)
91
92 const followersException = [ byActor ]
93 return broadcastToFollowers(data, byActor, actorsInvolvedInVideo, t, followersException)
94}
95
76// --------------------------------------------------------------------------- 96// ---------------------------------------------------------------------------
77 97
78export { 98export {
79 sendUndoFollow, 99 sendUndoFollow,
80 sendUndoLike, 100 sendUndoLike,
81 sendUndoDislike 101 sendUndoDislike,
102 sendUndoAnnounce
82} 103}
83 104
84// --------------------------------------------------------------------------- 105// ---------------------------------------------------------------------------
@@ -86,7 +107,7 @@ export {
86async function undoActivityData ( 107async function undoActivityData (
87 url: string, 108 url: string,
88 byActor: ActorModel, 109 byActor: ActorModel,
89 object: ActivityFollow | ActivityLike | ActivityCreate, 110 object: ActivityFollow | ActivityLike | ActivityCreate | ActivityAnnounce,
90 t: Transaction, 111 t: Transaction,
91 audience?: ActivityAudience 112 audience?: ActivityAudience
92): Promise<ActivityUndo> { 113): Promise<ActivityUndo> {