X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Fvideo%2Fvideo.ts;h=0041e4d387a94a6d58a8b9ff12f72659fcb08c96;hb=bbe0f0645ca958d33a3f409b15166609733b663f;hp=440f4d17161a7a1c78f4ad6fa51baec9431acd98;hpb=2baea0c77cc765f7cbca9c9a2f4272268892a35c;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/video/video.ts b/server/models/video/video.ts index 440f4d171..0041e4d38 100644 --- a/server/models/video/video.ts +++ b/server/models/video/video.ts @@ -97,7 +97,8 @@ export enum ScopeNames { AVAILABLE_FOR_LIST = 'AVAILABLE_FOR_LIST', WITH_ACCOUNT_DETAILS = 'WITH_ACCOUNT_DETAILS', WITH_TAGS = 'WITH_TAGS', - WITH_FILES = 'WITH_FILES' + WITH_FILES = 'WITH_FILES', + WITH_SCHEDULED_UPDATE = 'WITH_SCHEDULED_UPDATE' } @Scopes({ @@ -286,6 +287,14 @@ export enum ScopeNames { required: true } ] + }, + [ScopeNames.WITH_SCHEDULED_UPDATE]: { + include: [ + { + model: () => ScheduleVideoUpdateModel.unscoped(), + required: false + } + ] } }) @Table({ @@ -843,7 +852,7 @@ export class VideoModel extends Model { } return VideoModel - .scope([ ScopeNames.WITH_TAGS, ScopeNames.WITH_FILES, ScopeNames.WITH_ACCOUNT_DETAILS ]) + .scope([ ScopeNames.WITH_TAGS, ScopeNames.WITH_FILES, ScopeNames.WITH_ACCOUNT_DETAILS, ScopeNames.WITH_SCHEDULED_UPDATE ]) .findById(id, options) } @@ -869,7 +878,7 @@ export class VideoModel extends Model { } return VideoModel - .scope([ ScopeNames.WITH_TAGS, ScopeNames.WITH_FILES, ScopeNames.WITH_ACCOUNT_DETAILS ]) + .scope([ ScopeNames.WITH_TAGS, ScopeNames.WITH_FILES, ScopeNames.WITH_ACCOUNT_DETAILS, ScopeNames.WITH_SCHEDULED_UPDATE ]) .findOne(options) } @@ -1022,9 +1031,9 @@ export class VideoModel extends Model { toFormattedJSON (options?: { additionalAttributes: { - state: boolean, - waitTranscoding: boolean, - scheduledUpdate: boolean + state?: boolean, + waitTranscoding?: boolean, + scheduledUpdate?: boolean } }): Video { const formattedAccount = this.VideoChannel.Account.toFormattedJSON() @@ -1084,18 +1093,18 @@ export class VideoModel extends Model { } if (options) { - if (options.additionalAttributes.state) { + if (options.additionalAttributes.state === true) { videoObject.state = { id: this.state, label: VideoModel.getStateLabel(this.state) } } - if (options.additionalAttributes.waitTranscoding) { + if (options.additionalAttributes.waitTranscoding === true) { videoObject.waitTranscoding = this.waitTranscoding } - if (options.additionalAttributes.scheduledUpdate && this.ScheduleVideoUpdate) { + if (options.additionalAttributes.scheduledUpdate === true && this.ScheduleVideoUpdate) { videoObject.scheduledUpdate = { updateAt: this.ScheduleVideoUpdate.updateAt, privacy: this.ScheduleVideoUpdate.privacy || undefined @@ -1107,7 +1116,11 @@ export class VideoModel extends Model { } toFormattedDetailsJSON (): VideoDetails { - const formattedJson = this.toFormattedJSON() + const formattedJson = this.toFormattedJSON({ + additionalAttributes: { + scheduledUpdate: true + } + }) const detailsJson = { support: this.support,