X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fmodel-loaders%2Fvideo.ts;h=07b373ed39e0dccdf6632924fd9f282d499b6ca7;hb=ca4b4b2e5590c1b37cff1fe1be7f797b93351229;hp=7aaf00e895df79a3d95a52784214c3c222907198;hpb=10363c74c1d869f0e0c7bc4d0367b1f34d1bb6a4;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/model-loaders/video.ts b/server/lib/model-loaders/video.ts index 7aaf00e89..07b373ed3 100644 --- a/server/lib/model-loaders/video.ts +++ b/server/lib/model-loaders/video.ts @@ -1,30 +1,42 @@ import { VideoModel } from '@server/models/video/video' import { MVideoAccountLightBlacklistAllFiles, + MVideoFormattableDetails, MVideoFullLight, MVideoIdThumbnail, MVideoImmutable, MVideoThumbnail, MVideoWithRights } from '@server/types/models' +import { Hooks } from '../plugins/hooks' -type VideoFetchType = 'all' | 'only-video' | 'only-video-with-rights' | 'id' | 'none' | 'only-immutable-attributes' +type VideoLoadType = 'for-api' | 'all' | 'only-video' | 'only-video-with-rights' | 'id' | 'none' | 'only-immutable-attributes' -function fetchVideo (id: number | string, fetchType: 'all', userId?: number): Promise -function fetchVideo (id: number | string, fetchType: 'only-immutable-attributes'): Promise -function fetchVideo (id: number | string, fetchType: 'only-video', userId?: number): Promise -function fetchVideo (id: number | string, fetchType: 'only-video-with-rights', userId?: number): Promise -function fetchVideo (id: number | string, fetchType: 'id' | 'none', userId?: number): Promise -function fetchVideo ( +function loadVideo (id: number | string, fetchType: 'for-api', userId?: number): Promise +function loadVideo (id: number | string, fetchType: 'all', userId?: number): Promise +function loadVideo (id: number | string, fetchType: 'only-immutable-attributes'): Promise +function loadVideo (id: number | string, fetchType: 'only-video', userId?: number): Promise +function loadVideo (id: number | string, fetchType: 'only-video-with-rights', userId?: number): Promise +function loadVideo (id: number | string, fetchType: 'id' | 'none', userId?: number): Promise +function loadVideo ( id: number | string, - fetchType: VideoFetchType, + fetchType: VideoLoadType, userId?: number ): Promise -function fetchVideo ( +function loadVideo ( id: number | string, - fetchType: VideoFetchType, + fetchType: VideoLoadType, userId?: number ): Promise { + + if (fetchType === 'for-api') { + return Hooks.wrapPromiseFun( + VideoModel.loadForGetAPI, + { id, userId }, + 'filter:api.video.get.result' + ) + } + if (fetchType === 'all') return VideoModel.loadAndPopulateAccountAndServerAndTags(id, undefined, userId) if (fetchType === 'only-immutable-attributes') return VideoModel.loadImmutableAttributes(id) @@ -36,18 +48,18 @@ function fetchVideo ( if (fetchType === 'id' || fetchType === 'none') return VideoModel.loadOnlyId(id) } -type VideoFetchByUrlType = 'all' | 'only-video' | 'only-immutable-attributes' +type VideoLoadByUrlType = 'all' | 'only-video' | 'only-immutable-attributes' -function fetchVideoByUrl (url: string, fetchType: 'all'): Promise -function fetchVideoByUrl (url: string, fetchType: 'only-immutable-attributes'): Promise -function fetchVideoByUrl (url: string, fetchType: 'only-video'): Promise -function fetchVideoByUrl ( +function loadVideoByUrl (url: string, fetchType: 'all'): Promise +function loadVideoByUrl (url: string, fetchType: 'only-immutable-attributes'): Promise +function loadVideoByUrl (url: string, fetchType: 'only-video'): Promise +function loadVideoByUrl ( url: string, - fetchType: VideoFetchByUrlType + fetchType: VideoLoadByUrlType ): Promise -function fetchVideoByUrl ( +function loadVideoByUrl ( url: string, - fetchType: VideoFetchByUrlType + fetchType: VideoLoadByUrlType ): Promise { if (fetchType === 'all') return VideoModel.loadByUrlAndPopulateAccount(url) @@ -57,8 +69,9 @@ function fetchVideoByUrl ( } export { - VideoFetchType, - VideoFetchByUrlType, - fetchVideo, - fetchVideoByUrl + VideoLoadType, + VideoLoadByUrlType, + + loadVideo, + loadVideoByUrl }