]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/models/account/user-video-history.ts
Upgrade sequelize to v6
[github/Chocobozzz/PeerTube.git] / server / models / account / user-video-history.ts
index 15cb399c952bc909305e331baf8cece53bccd45d..45171fc6063c0e2ce65806385d870b6625d511f8 100644 (file)
@@ -1,7 +1,8 @@
 import { AllowNull, BelongsTo, Column, CreatedAt, ForeignKey, IsInt, Model, Table, UpdatedAt } from 'sequelize-typescript'
 import { VideoModel } from '../video/video'
 import { UserModel } from './user'
-import { Transaction, Op, DestroyOptions } from 'sequelize'
+import { DestroyOptions, Op, Transaction } from 'sequelize'
+import { MUserAccountId, MUserId } from '@server/types/models'
 
 @Table({
   tableName: 'userVideoHistory',
@@ -18,7 +19,7 @@ import { Transaction, Op, DestroyOptions } from 'sequelize'
     }
   ]
 })
-export class UserVideoHistoryModel extends Model<UserVideoHistoryModel> {
+export class UserVideoHistoryModel extends Model {
   @CreatedAt
   createdAt: Date
 
@@ -54,11 +55,11 @@ export class UserVideoHistoryModel extends Model<UserVideoHistoryModel> {
   })
   User: UserModel
 
-  static listForApi (user: UserModel, start: number, count: number) {
+  static listForApi (user: MUserAccountId, start: number, count: number) {
     return VideoModel.listForApi({
       start,
       count,
-      sort: '-UserVideoHistories.updatedAt',
+      sort: '-"userVideoHistory"."updatedAt"',
       nsfw: null, // All
       includeLocalVideos: true,
       withFiles: false,
@@ -67,7 +68,7 @@ export class UserVideoHistoryModel extends Model<UserVideoHistoryModel> {
     })
   }
 
-  static removeHistoryBefore (user: UserModel, beforeDate: string, t: Transaction) {
+  static removeUserHistoryBefore (user: MUserId, beforeDate: string, t: Transaction) {
     const query: DestroyOptions = {
       where: {
         userId: user.id
@@ -76,11 +77,23 @@ export class UserVideoHistoryModel extends Model<UserVideoHistoryModel> {
     }
 
     if (beforeDate) {
-      query.where.updatedAt = {
+      query.where['updatedAt'] = {
         [Op.lt]: beforeDate
       }
     }
 
     return UserVideoHistoryModel.destroy(query)
   }
+
+  static removeOldHistory (beforeDate: string) {
+    const query: DestroyOptions = {
+      where: {
+        updatedAt: {
+          [Op.lt]: beforeDate
+        }
+      }
+    }
+
+    return UserVideoHistoryModel.destroy(query)
+  }
 }