45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
|
import { exists } from './misc'
|
||
|
import * as validator from 'validator'
|
||
|
import { CONSTRAINTS_FIELDS, VIDEO_PLAYLIST_PRIVACIES } from '../../initializers'
|
||
|
import * as express from 'express'
|
||
|
import { VideoPlaylistModel } from '../../models/video/video-playlist'
|
||
|
import { VideoPlaylistElementModel } from '../../models/video/video-playlist-element'
|
||
|
|
||
|
const PLAYLISTS_CONSTRAINT_FIELDS = CONSTRAINTS_FIELDS.VIDEO_PLAYLISTS
|
||
|
|
||
|
function isVideoPlaylistNameValid (value: any) {
|
||
|
return exists(value) && validator.isLength(value, PLAYLISTS_CONSTRAINT_FIELDS.NAME)
|
||
|
}
|
||
|
|
||
|
function isVideoPlaylistDescriptionValid (value: any) {
|
||
|
return value === null || (exists(value) && validator.isLength(value, PLAYLISTS_CONSTRAINT_FIELDS.DESCRIPTION))
|
||
|
}
|
||
|
|
||
|
function isVideoPlaylistPrivacyValid (value: number) {
|
||
|
return validator.isInt(value + '') && VIDEO_PLAYLIST_PRIVACIES[ value ] !== undefined
|
||
|
}
|
||
|
|
||
|
async function isVideoPlaylistExist (id: number | string, res: express.Response) {
|
||
|
const videoPlaylist = await VideoPlaylistModel.load(id, undefined)
|
||
|
|
||
|
if (!videoPlaylist) {
|
||
|
res.status(404)
|
||
|
.json({ error: 'Video playlist not found' })
|
||
|
.end()
|
||
|
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
res.locals.videoPlaylist = videoPlaylist
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
// ---------------------------------------------------------------------------
|
||
|
|
||
|
export {
|
||
|
isVideoPlaylistExist,
|
||
|
isVideoPlaylistNameValid,
|
||
|
isVideoPlaylistDescriptionValid,
|
||
|
isVideoPlaylistPrivacyValid
|
||
|
}
|