]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/middlewares/validators/shared/video-playlists.ts
Merge branch 'master' into release/3.3.0
[github/Chocobozzz/PeerTube.git] / server / middlewares / validators / shared / video-playlists.ts
1 import * as express from 'express'
2 import { VideoPlaylistModel } from '@server/models/video/video-playlist'
3 import { MVideoPlaylist } from '@server/types/models'
4 import { HttpStatusCode } from '@shared/core-utils'
5
6 export type VideoPlaylistFetchType = 'summary' | 'all'
7 async function doesVideoPlaylistExist (id: number | string, res: express.Response, fetchType: VideoPlaylistFetchType = 'summary') {
8 if (fetchType === 'summary') {
9 const videoPlaylist = await VideoPlaylistModel.loadWithAccountAndChannelSummary(id, undefined)
10 res.locals.videoPlaylistSummary = videoPlaylist
11
12 return handleVideoPlaylist(videoPlaylist, res)
13 }
14
15 const videoPlaylist = await VideoPlaylistModel.loadWithAccountAndChannel(id, undefined)
16 res.locals.videoPlaylistFull = videoPlaylist
17
18 return handleVideoPlaylist(videoPlaylist, res)
19 }
20
21 // ---------------------------------------------------------------------------
22
23 export {
24 doesVideoPlaylistExist
25 }
26
27 // ---------------------------------------------------------------------------
28
29 function handleVideoPlaylist (videoPlaylist: MVideoPlaylist, res: express.Response) {
30 if (!videoPlaylist) {
31 res.fail({
32 status: HttpStatusCode.NOT_FOUND_404,
33 message: 'Video playlist not found'
34 })
35 return false
36 }
37
38 return true
39 }