]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/models/video/video-import.ts
Translated using Weblate (Arabic)
[github/Chocobozzz/PeerTube.git] / server / models / video / video-import.ts
index 588a13a4fb71a27cbe8859224f8732cf0298a36f..ea1e085af73d6ac2556254581a32a32f0d74c98c 100644 (file)
@@ -20,19 +20,25 @@ import { isVideoImportStateValid, isVideoImportTargetUrlValid } from '../../help
 import { VideoImport, VideoImportState } from '../../../shared'
 import { isVideoMagnetUriValid } from '../../helpers/custom-validators/videos'
 import { UserModel } from '../account/user'
+import * as Bluebird from 'bluebird'
+import { MVideoImportDefault, MVideoImportFormattable } from '@server/types/models/video/video-import'
 
-@DefaultScope({
+@DefaultScope(() => ({
   include: [
     {
-      model: () => UserModel.unscoped(),
+      model: UserModel.unscoped(),
       required: true
     },
     {
-      model: () => VideoModel.scope([ VideoModelScopeNames.WITH_ACCOUNT_DETAILS, VideoModelScopeNames.WITH_TAGS]),
+      model: VideoModel.scope([
+        VideoModelScopeNames.WITH_ACCOUNT_DETAILS,
+        VideoModelScopeNames.WITH_TAGS,
+        VideoModelScopeNames.WITH_THUMBNAILS
+      ]),
       required: false
     }
   ]
-})
+}))
 
 @Table({
   tableName: 'videoImport',
@@ -114,7 +120,7 @@ export class VideoImportModel extends Model<VideoImportModel> {
     return undefined
   }
 
-  static loadAndPopulateVideo (id: number) {
+  static loadAndPopulateVideo (id: number): Bluebird<MVideoImportDefault> {
     return VideoImportModel.findByPk(id)
   }
 
@@ -123,6 +129,7 @@ export class VideoImportModel extends Model<VideoImportModel> {
       distinct: true,
       include: [
         {
+          attributes: [ 'id' ],
           model: UserModel.unscoped(), // FIXME: Without this, sequelize try to COUNT(DISTINCT(*)) which is an invalid SQL query
           required: true
         }
@@ -135,7 +142,7 @@ export class VideoImportModel extends Model<VideoImportModel> {
       }
     }
 
-    return VideoImportModel.findAndCountAll(query)
+    return VideoImportModel.findAndCountAll<MVideoImportDefault>(query)
                            .then(({ rows, count }) => {
                              return {
                                data: rows,
@@ -148,7 +155,7 @@ export class VideoImportModel extends Model<VideoImportModel> {
     return this.targetUrl || this.magnetUri || this.torrentName
   }
 
-  toFormattedJSON (): VideoImport {
+  toFormattedJSON (this: MVideoImportFormattable): VideoImport {
     const videoFormatOptions = {
       completeDescription: true,
       additionalAttributes: { state: true, waitTranscoding: true, scheduledUpdate: true }