diff options
Diffstat (limited to 'server/models/video/sql/video/video-model-get-query-builder.ts')
-rw-r--r-- | server/models/video/sql/video/video-model-get-query-builder.ts | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/server/models/video/sql/video/video-model-get-query-builder.ts b/server/models/video/sql/video/video-model-get-query-builder.ts index b0879c9ac..32e5c4ff7 100644 --- a/server/models/video/sql/video/video-model-get-query-builder.ts +++ b/server/models/video/sql/video/video-model-get-query-builder.ts | |||
@@ -1,3 +1,4 @@ | |||
1 | import { pick } from 'lodash' | ||
1 | import { Sequelize, Transaction } from 'sequelize' | 2 | import { Sequelize, Transaction } from 'sequelize' |
2 | import { AbstractVideoQueryBuilder } from './shared/abstract-video-query-builder' | 3 | import { AbstractVideoQueryBuilder } from './shared/abstract-video-query-builder' |
3 | import { VideoFileQueryBuilder } from './shared/video-file-query-builder' | 4 | import { VideoFileQueryBuilder } from './shared/video-file-query-builder' |
@@ -50,15 +51,21 @@ export class VideoModelGetQueryBuilder { | |||
50 | } | 51 | } |
51 | 52 | ||
52 | async queryVideo (options: BuildVideoGetQueryOptions) { | 53 | async queryVideo (options: BuildVideoGetQueryOptions) { |
54 | const fileQueryOptions = { | ||
55 | ...pick(options, [ 'id', 'url', 'transaction', 'logging' ]), | ||
56 | |||
57 | includeRedundancy: this.shouldIncludeRedundancies(options) | ||
58 | } | ||
59 | |||
53 | const [ videoRows, webtorrentFilesRows, streamingPlaylistFilesRows ] = await Promise.all([ | 60 | const [ videoRows, webtorrentFilesRows, streamingPlaylistFilesRows ] = await Promise.all([ |
54 | this.videoQueryBuilder.queryVideos(options), | 61 | this.videoQueryBuilder.queryVideos(options), |
55 | 62 | ||
56 | VideoModelGetQueryBuilder.videoFilesInclude.has(options.type) | 63 | VideoModelGetQueryBuilder.videoFilesInclude.has(options.type) |
57 | ? this.webtorrentFilesQueryBuilder.queryWebTorrentVideos(options) | 64 | ? this.webtorrentFilesQueryBuilder.queryWebTorrentVideos(fileQueryOptions) |
58 | : Promise.resolve(undefined), | 65 | : Promise.resolve(undefined), |
59 | 66 | ||
60 | VideoModelGetQueryBuilder.videoFilesInclude.has(options.type) | 67 | VideoModelGetQueryBuilder.videoFilesInclude.has(options.type) |
61 | ? this.streamingPlaylistFilesQueryBuilder.queryStreamingPlaylistVideos(options) | 68 | ? this.streamingPlaylistFilesQueryBuilder.queryStreamingPlaylistVideos(fileQueryOptions) |
62 | : Promise.resolve(undefined) | 69 | : Promise.resolve(undefined) |
63 | ]) | 70 | ]) |
64 | 71 | ||
@@ -76,6 +83,10 @@ export class VideoModelGetQueryBuilder { | |||
76 | 83 | ||
77 | return videos[0] | 84 | return videos[0] |
78 | } | 85 | } |
86 | |||
87 | private shouldIncludeRedundancies (options: BuildVideoGetQueryOptions) { | ||
88 | return options.type === 'api' | ||
89 | } | ||
79 | } | 90 | } |
80 | 91 | ||
81 | export class VideosModelGetQuerySubBuilder extends AbstractVideoQueryBuilder { | 92 | export class VideosModelGetQuerySubBuilder extends AbstractVideoQueryBuilder { |