2019-02-26 03:55:40 -06:00
|
|
|
import { exists } from './misc'
|
|
|
|
import * as validator from 'validator'
|
2019-03-05 03:58:44 -06:00
|
|
|
import { CONSTRAINTS_FIELDS, VIDEO_PLAYLIST_PRIVACIES, VIDEO_PLAYLIST_TYPES } from '../../initializers'
|
2019-02-26 03:55:40 -06:00
|
|
|
import * as express from 'express'
|
|
|
|
import { VideoPlaylistModel } from '../../models/video/video-playlist'
|
|
|
|
|
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2019-03-05 03:58:44 -06:00
|
|
|
function isVideoPlaylistTimestampValid (value: any) {
|
|
|
|
return value === null || (exists(value) && validator.isInt('' + value, { min: 0 }))
|
|
|
|
}
|
|
|
|
|
|
|
|
function isVideoPlaylistTypeValid (value: any) {
|
|
|
|
return exists(value) && VIDEO_PLAYLIST_TYPES[ value ] !== undefined
|
|
|
|
}
|
|
|
|
|
2019-03-19 03:26:50 -05:00
|
|
|
async function doesVideoPlaylistExist (id: number | string, res: express.Response, fetchType: 'summary' | 'all' = 'summary') {
|
2019-03-05 04:30:43 -06:00
|
|
|
const videoPlaylist = fetchType === 'summary'
|
|
|
|
? await VideoPlaylistModel.loadWithAccountAndChannelSummary(id, undefined)
|
|
|
|
: await VideoPlaylistModel.loadWithAccountAndChannel(id, undefined)
|
2019-02-26 03:55:40 -06:00
|
|
|
|
|
|
|
if (!videoPlaylist) {
|
|
|
|
res.status(404)
|
|
|
|
.json({ error: 'Video playlist not found' })
|
|
|
|
.end()
|
|
|
|
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
|
|
|
res.locals.videoPlaylist = videoPlaylist
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
export {
|
2019-03-19 03:26:50 -05:00
|
|
|
doesVideoPlaylistExist,
|
2019-02-26 03:55:40 -06:00
|
|
|
isVideoPlaylistNameValid,
|
|
|
|
isVideoPlaylistDescriptionValid,
|
2019-03-05 03:58:44 -06:00
|
|
|
isVideoPlaylistPrivacyValid,
|
|
|
|
isVideoPlaylistTimestampValid,
|
|
|
|
isVideoPlaylistTypeValid
|
2019-02-26 03:55:40 -06:00
|
|
|
}
|