From 418d092afa81e2c8fe8ac6838fc4b5eb0af6a782 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 26 Feb 2019 10:55:40 +0100 Subject: Playlist server API --- .../helpers/custom-validators/video-playlists.ts | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 server/helpers/custom-validators/video-playlists.ts (limited to 'server/helpers/custom-validators/video-playlists.ts') diff --git a/server/helpers/custom-validators/video-playlists.ts b/server/helpers/custom-validators/video-playlists.ts new file mode 100644 index 000000000..0f5af4ec0 --- /dev/null +++ b/server/helpers/custom-validators/video-playlists.ts @@ -0,0 +1,44 @@ +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 +} -- cgit v1.2.3