]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/helpers/custom-validators/video-playlists.ts
Merge branch 'release/v1.3.0' into develop
[github/Chocobozzz/PeerTube.git] / server / helpers / custom-validators / video-playlists.ts
CommitLineData
418d092a
C
1import { exists } from './misc'
2import * as validator from 'validator'
74dc3bca 3import { CONSTRAINTS_FIELDS, VIDEO_PLAYLIST_PRIVACIES, VIDEO_PLAYLIST_TYPES } from '../../initializers/constants'
418d092a
C
4import * as express from 'express'
5import { VideoPlaylistModel } from '../../models/video/video-playlist'
418d092a
C
6
7const PLAYLISTS_CONSTRAINT_FIELDS = CONSTRAINTS_FIELDS.VIDEO_PLAYLISTS
8
9function isVideoPlaylistNameValid (value: any) {
10 return exists(value) && validator.isLength(value, PLAYLISTS_CONSTRAINT_FIELDS.NAME)
11}
12
13function isVideoPlaylistDescriptionValid (value: any) {
14 return value === null || (exists(value) && validator.isLength(value, PLAYLISTS_CONSTRAINT_FIELDS.DESCRIPTION))
15}
16
17function isVideoPlaylistPrivacyValid (value: number) {
18 return validator.isInt(value + '') && VIDEO_PLAYLIST_PRIVACIES[ value ] !== undefined
19}
20
df0b219d
C
21function isVideoPlaylistTimestampValid (value: any) {
22 return value === null || (exists(value) && validator.isInt('' + value, { min: 0 }))
23}
24
25function isVideoPlaylistTypeValid (value: any) {
26 return exists(value) && VIDEO_PLAYLIST_TYPES[ value ] !== undefined
27}
28
0f6acda1 29async function doesVideoPlaylistExist (id: number | string, res: express.Response, fetchType: 'summary' | 'all' = 'summary') {
09979f89
C
30 const videoPlaylist = fetchType === 'summary'
31 ? await VideoPlaylistModel.loadWithAccountAndChannelSummary(id, undefined)
32 : await VideoPlaylistModel.loadWithAccountAndChannel(id, undefined)
418d092a
C
33
34 if (!videoPlaylist) {
35 res.status(404)
36 .json({ error: 'Video playlist not found' })
37 .end()
38
39 return false
40 }
41
42 res.locals.videoPlaylist = videoPlaylist
43 return true
44}
45
46// ---------------------------------------------------------------------------
47
48export {
0f6acda1 49 doesVideoPlaylistExist,
418d092a
C
50 isVideoPlaylistNameValid,
51 isVideoPlaylistDescriptionValid,
df0b219d
C
52 isVideoPlaylistPrivacyValid,
53 isVideoPlaylistTimestampValid,
54 isVideoPlaylistTypeValid
418d092a 55}