async function processDeleteActivity (activity: ActivityDelete) {
const actor = await getOrCreateActorAndServerAndModel(activity.actor)
- if (actor.url === activity.id) {
+ if (actor.url === activity.object) {
if (actor.type === 'Person') {
if (!actor.Account) throw new Error('Actor ' + actor.url + ' is a person but we cannot find it in database.')
}
{
- const videoCommentInstance = await VideoCommentModel.loadByUrlAndPopulateAccount(activity.id)
+ const videoCommentInstance = await VideoCommentModel.loadByUrlAndPopulateAccount(activity.object)
if (videoCommentInstance) {
return processDeleteVideoComment(actor, videoCommentInstance)
}
}
{
- const videoInstance = await VideoModel.loadByUrlAndPopulateAccount(activity.id)
+ const videoInstance = await VideoModel.loadByUrlAndPopulateAccount(activity.object)
if (videoInstance) {
return processDeleteVideo(actor, videoInstance)
}
import { VideoModel } from '../../../models/video/video'
import { VideoCommentModel } from '../../../models/video/video-comment'
import { VideoShareModel } from '../../../models/video/video-share'
+import { getDeleteActivityPubUrl } from '../url'
import { broadcastToFollowers } from './misc'
async function sendDeleteVideo (video: VideoModel, t: Transaction) {
+ const url = getDeleteActivityPubUrl(video.url)
const byActor = video.VideoChannel.Account.Actor
- const data = deleteActivityData(video.url, byActor)
+ const data = deleteActivityData(url, video.url, byActor)
const actorsInvolved = await VideoShareModel.loadActorsByShare(video.id, t)
actorsInvolved.push(byActor)
}
async function sendDeleteActor (byActor: ActorModel, t: Transaction) {
- const data = deleteActivityData(byActor.url, byActor)
+ const url = getDeleteActivityPubUrl(byActor.url)
+ const data = deleteActivityData(url, byActor.url, byActor)
return broadcastToFollowers(data, byActor, [ byActor ], t)
}
async function sendDeleteVideoComment (videoComment: VideoCommentModel, t: Transaction) {
- const byActor = videoComment.Account.Actor
+ const url = getDeleteActivityPubUrl(videoComment.url)
- const data = deleteActivityData(videoComment.url, byActor)
+ const byActor = videoComment.Account.Actor
+ const data = deleteActivityData(url, videoComment.url, byActor)
const actorsInvolved = await VideoShareModel.loadActorsByShare(videoComment.Video.id, t)
actorsInvolved.push(videoComment.Video.VideoChannel.Account.Actor)
// ---------------------------------------------------------------------------
-function deleteActivityData (url: string, byActor: ActorModel): ActivityDelete {
+function deleteActivityData (url: string, object: string, byActor: ActorModel): ActivityDelete {
return {
type: 'Delete',
id: url,
- actor: byActor.url
+ actor: byActor.url,
+ object
}
}
return originalUrl + '/announces/' + byActor.id
}
+function getDeleteActivityPubUrl (originalUrl: string) {
+ return originalUrl + '/delete'
+}
+
function getUpdateActivityPubUrl (originalUrl: string, updatedAt: string) {
return originalUrl + '/updates/' + updatedAt
}
getVideoViewActivityPubUrl,
getVideoLikeActivityPubUrl,
getVideoDislikeActivityPubUrl,
- getVideoCommentActivityPubUrl
+ getVideoCommentActivityPubUrl,
+ getDeleteActivityPubUrl
}