]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/models/video/video-comment.ts
Add ability to share playlists in modal
[github/Chocobozzz/PeerTube.git] / server / models / video / video-comment.ts
index fb6078ed889411496331fda3be8118b0fb547b05..1d5c7280df284b3cbccf32ba7dad3bacb919ea71 100644 (file)
@@ -3,7 +3,6 @@ import { uniq } from 'lodash'
 import { FindOptions, Op, Order, ScopeOptions, Sequelize, Transaction } from 'sequelize'
 import {
   AllowNull,
-  BeforeDestroy,
   BelongsTo,
   Column,
   CreatedAt,
@@ -16,7 +15,6 @@ import {
   Table,
   UpdatedAt
 } from 'sequelize-typescript'
-import { logger } from '@server/helpers/logger'
 import { getServerActor } from '@server/models/application/application'
 import { MAccount, MAccountId, MUserAccountId } from '@server/types/models'
 import { VideoPrivacy } from '@shared/models'
@@ -46,7 +44,7 @@ import { buildBlockedAccountSQL, buildLocalAccountIdsIn, getCommentSort, throwIf
 import { VideoModel } from './video'
 import { VideoChannelModel } from './video-channel'
 
-enum ScopeNames {
+export enum ScopeNames {
   WITH_ACCOUNT = 'WITH_ACCOUNT',
   WITH_ACCOUNT_FOR_API = 'WITH_ACCOUNT_FOR_API',
   WITH_IN_REPLY_TO = 'WITH_IN_REPLY_TO',
@@ -242,51 +240,13 @@ export class VideoCommentModel extends Model<VideoCommentModel> {
 
   @HasMany(() => VideoCommentAbuseModel, {
     foreignKey: {
-      name: 'commentId',
+      name: 'videoCommentId',
       allowNull: true
     },
     onDelete: 'set null'
   })
   CommentAbuses: VideoCommentAbuseModel[]
 
-  @BeforeDestroy
-  static async saveEssentialDataToAbuses (instance: VideoCommentModel, options) {
-    const tasks: Promise<any>[] = []
-
-    if (!Array.isArray(instance.CommentAbuses)) {
-      instance.CommentAbuses = await instance.$get('CommentAbuses')
-
-      if (instance.CommentAbuses.length === 0) return undefined
-    }
-
-    if (!instance.Video) {
-      instance.Video = await instance.$get('Video')
-    }
-
-    logger.info('Saving video comment %s for abuse.', instance.url)
-
-    const details = Object.assign(instance.toFormattedJSON(), {
-      Video: {
-        id: instance.Video.id,
-        name: instance.Video.name,
-        uuid: instance.Video.uuid
-      }
-    })
-
-    for (const abuse of instance.CommentAbuses) {
-      abuse.deletedComment = details
-
-      tasks.push(abuse.save({ transaction: options.transaction }))
-    }
-
-    Promise.all(tasks)
-           .catch(err => {
-             logger.error('Some errors when saving details of comment %s in its abuses before destroy hook.', instance.url, { err })
-           })
-
-    return undefined
-  }
-
   static loadById (id: number, t?: Transaction): Bluebird<MComment> {
     const query: FindOptions = {
       where: {
@@ -695,7 +655,7 @@ export class VideoCommentModel extends Model<VideoCommentModel> {
       id: this.id,
       url: this.url,
       text: this.text,
-      threadId: this.originCommentId || this.id,
+      threadId: this.getThreadId(),
       inReplyToCommentId: this.inReplyToCommentId || null,
       videoId: this.videoId,
       createdAt: this.createdAt,