]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/lib/activitypub/send/send-delete.ts
Begin moving video channel to actor
[github/Chocobozzz/PeerTube.git] / server / lib / activitypub / send / send-delete.ts
CommitLineData
54141398 1import { Transaction } from 'sequelize'
3fd3ab2d 2import { ActivityDelete } from '../../../../shared/models/activitypub'
50d6de9c 3import { ActorModel } from '../../../models/activitypub/actor'
3fd3ab2d 4import { VideoModel } from '../../../models/video/video'
3fd3ab2d 5import { VideoShareModel } from '../../../models/video/video-share'
54141398
C
6import { broadcastToFollowers } from './misc'
7
3fd3ab2d 8async function sendDeleteVideo (video: VideoModel, t: Transaction) {
50d6de9c 9 const byActor = video.VideoChannel.Account.Actor
54141398 10
50d6de9c 11 const data = deleteActivityData(video.url, byActor)
54141398 12
50d6de9c
C
13 const actorsInvolved = await VideoShareModel.loadActorsByShare(video.id, t)
14 actorsInvolved.push(byActor)
54141398 15
50d6de9c 16 return broadcastToFollowers(data, byActor, actorsInvolved, t)
54141398
C
17}
18
50d6de9c
C
19async function sendDeleteActor (byActor: ActorModel, t: Transaction) {
20 const data = deleteActivityData(byActor.url, byActor)
54141398 21
50d6de9c 22 return broadcastToFollowers(data, byActor, [ byActor ], t)
54141398
C
23}
24
25// ---------------------------------------------------------------------------
26
27export {
54141398 28 sendDeleteVideo,
50d6de9c 29 sendDeleteActor
54141398
C
30}
31
32// ---------------------------------------------------------------------------
33
50d6de9c 34function deleteActivityData (url: string, byActor: ActorModel): ActivityDelete {
3fd3ab2d 35 return {
54141398
C
36 type: 'Delete',
37 id: url,
50d6de9c 38 actor: byActor.url
54141398 39 }
54141398 40}