import { sequelizeTypescript } from '../../../initializers'
import { Notifier } from '../../../lib/notifier'
import { VideoModel } from '../../../models/video/video'
+import { sendCreateVideo, sendDeleteVideo, sendUpdateVideo } from '../../../lib/activitypub/send'
+import { federateVideoIfNeeded } from '../../../lib/activitypub'
const blacklistRouter = express.Router()
const toCreate = {
videoId: videoInstance.id,
+ unfederated: body.unfederate === true,
reason: body.reason
}
const blacklist = await VideoBlacklistModel.create(toCreate)
blacklist.Video = videoInstance
+ if (body.unfederate === true) {
+ await sendDeleteVideo(videoInstance, undefined)
+ }
+
Notifier.Instance.notifyOnVideoBlacklist(blacklist)
logger.info('Video %s blacklisted.', res.locals.video.uuid)
const videoBlacklist = res.locals.videoBlacklist as VideoBlacklistModel
const video: VideoModel = res.locals.video
- await sequelizeTypescript.transaction(t => {
- return videoBlacklist.destroy({ transaction: t })
+ await sequelizeTypescript.transaction(async t => {
+ const unfederated = videoBlacklist.unfederated
+ await videoBlacklist.destroy({ transaction: t })
+
+ // Re federate the video
+ if (unfederated === true) {
+ await federateVideoIfNeeded(video, true, t)
+ }
})
Notifier.Instance.notifyOnVideoUnblacklist(video)