X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Faccount%2Faccount-video-rate.ts;h=4bd8114cf6e2a718a781b89a25fd8b4d42d64bc6;hb=13176a07a95984a53cc59aec5217f2ce9806d1bc;hp=59f586b5464db878a1559762260133cb373a95f0;hpb=97567dd81f508dd6295ac4d73d849aa2ce0a6549;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/account/account-video-rate.ts b/server/models/account/account-video-rate.ts index 59f586b54..4bd8114cf 100644 --- a/server/models/account/account-video-rate.ts +++ b/server/models/account/account-video-rate.ts @@ -6,10 +6,10 @@ import { CONSTRAINTS_FIELDS, VIDEO_RATE_TYPES } from '../../initializers/constan import { VideoModel } from '../video/video' import { AccountModel } from './account' import { ActorModel } from '../activitypub/actor' -import { getSort, throwIfNotValid } from '../utils' +import { buildLocalAccountIdsIn, getSort, throwIfNotValid } from '../utils' import { isActivityPubUrlValid } from '../../helpers/custom-validators/activitypub/misc' import { AccountVideoRate } from '../../../shared' -import { ScopeNames as VideoChannelScopeNames, VideoChannelModel } from '../video/video-channel' +import { ScopeNames as VideoChannelScopeNames, SummaryOptions, VideoChannelModel } from '../video/video-channel' /* Account rates per video. @@ -89,6 +89,25 @@ export class AccountVideoRateModel extends Model { return AccountVideoRateModel.findOne(options) } + static loadByAccountAndVideoOrUrl (accountId: number, videoId: number, url: string, transaction?: Transaction) { + const options: FindOptions = { + where: { + [ Op.or]: [ + { + accountId, + videoId + }, + { + url + } + ] + } + } + if (transaction) options.transaction = transaction + + return AccountVideoRateModel.findOne(options) + } + static listByAccountForApi (options: { start: number, count: number, @@ -109,7 +128,7 @@ export class AccountVideoRateModel extends Model { required: true, include: [ { - model: VideoChannelModel.scope({ method: [VideoChannelScopeNames.SUMMARY, true] }), + model: VideoChannelModel.scope({ method: [VideoChannelScopeNames.SUMMARY, { withAccount: true } as SummaryOptions ] }), required: true } ] @@ -200,7 +219,10 @@ export class AccountVideoRateModel extends Model { [Op.lt]: beforeUpdatedAt }, videoId, - type + type, + accountId: { + [Op.notIn]: buildLocalAccountIdsIn() + } }, transaction: t }