X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Fvideo%2Fvideo-share.ts;h=fda2d7cea42e2231671bc59b023a8525d8550351;hb=97567dd81f508dd6295ac4d73d849aa2ce0a6549;hp=7df0ed18df7e89b83aa464035730d2e878ff622b;hpb=df0b219d36bf6852cdf2a7ad09ed4a41c6bccefa;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/video/video-share.ts b/server/models/video/video-share.ts index 7df0ed18d..fda2d7cea 100644 --- a/server/models/video/video-share.ts +++ b/server/models/video/video-share.ts @@ -2,7 +2,7 @@ import * as Sequelize from 'sequelize' import * as Bluebird from 'bluebird' import { AllowNull, BelongsTo, Column, CreatedAt, DataType, ForeignKey, Is, Model, Scopes, Table, UpdatedAt } from 'sequelize-typescript' import { isActivityPubUrlValid } from '../../helpers/custom-validators/activitypub/misc' -import { CONSTRAINTS_FIELDS } from '../../initializers' +import { CONSTRAINTS_FIELDS } from '../../initializers/constants' import { AccountModel } from '../account/account' import { ActorModel } from '../activitypub/actor' import { throwIfNotValid } from '../utils' @@ -14,15 +14,15 @@ enum ScopeNames { WITH_ACTOR = 'WITH_ACTOR' } -@Scopes({ +@Scopes(() => ({ [ScopeNames.FULL]: { include: [ { - model: () => ActorModel, + model: ActorModel, required: true }, { - model: () => VideoModel, + model: VideoModel, required: true } ] @@ -30,12 +30,12 @@ enum ScopeNames { [ScopeNames.WITH_ACTOR]: { include: [ { - model: () => ActorModel, + model: ActorModel, required: true } ] } -}) +})) @Table({ tableName: 'videoShare', indexes: [ @@ -200,4 +200,17 @@ export class VideoShareModel extends Model { return VideoShareModel.findAndCountAll(query) } + + static cleanOldSharesOf (videoId: number, beforeUpdatedAt: Date) { + const query = { + where: { + updatedAt: { + [Sequelize.Op.lt]: beforeUpdatedAt + }, + videoId + } + } + + return VideoShareModel.destroy(query) + } }