From f05a1c30c15d2ae35c11e241ca039a72eeb7d6ad Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 18 Jan 2018 10:53:54 +0100 Subject: Don't show videos of remote instance after unfollow --- server/models/video/video-channel.ts | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) (limited to 'server/models/video/video-channel.ts') diff --git a/server/models/video/video-channel.ts b/server/models/video/video-channel.ts index e2cbf0422..7c161c864 100644 --- a/server/models/video/video-channel.ts +++ b/server/models/video/video-channel.ts @@ -1,20 +1,10 @@ import { - AfterDestroy, - AllowNull, - BelongsTo, - Column, - CreatedAt, - DefaultScope, - ForeignKey, - HasMany, - Is, - Model, - Scopes, - Table, + AllowNull, BeforeDestroy, BelongsTo, Column, CreatedAt, DefaultScope, ForeignKey, HasMany, Is, Model, Scopes, Table, UpdatedAt } from 'sequelize-typescript' import { ActivityPubActor } from '../../../shared/models/activitypub' import { isVideoChannelDescriptionValid, isVideoChannelNameValid } from '../../helpers/custom-validators/video-channels' +import { logger } from '../../helpers/logger' import { sendDeleteActor } from '../../lib/activitypub/send' import { AccountModel } from '../account/account' import { ActorModel } from '../activitypub/actor' @@ -116,14 +106,21 @@ export class VideoChannelModel extends Model { name: 'channelId', allowNull: false }, - onDelete: 'CASCADE' + onDelete: 'CASCADE', + hooks: true }) Videos: VideoModel[] - @AfterDestroy - static sendDeleteIfOwned (instance: VideoChannelModel) { + @BeforeDestroy + static async sendDeleteIfOwned (instance: VideoChannelModel, options) { + if (!instance.Actor) { + instance.Actor = await instance.$get('Actor', { transaction: options.transaction }) as ActorModel + } + if (instance.Actor.isOwned()) { - return sendDeleteActor(instance.Actor, undefined) + logger.debug('Sending delete of actor of video channel %s.', instance.Actor.url) + + return sendDeleteActor(instance.Actor, options.transaction) } return undefined -- cgit v1.2.3