X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcustom-validators%2Fvideo-channels.ts;h=fd56b9a70354b099a9e86bfd5410e2e5015d5e91;hb=1eddc9a74f9a80fa5d0cb25fceb3fc47a1a3c14a;hp=267d987fc658f22c10b9378b077860eb1dabf01a;hpb=4e50b6a1c9a3eb261e04ede73241648e6edf21d6;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/custom-validators/video-channels.ts b/server/helpers/custom-validators/video-channels.ts index 267d987fc..fd56b9a70 100644 --- a/server/helpers/custom-validators/video-channels.ts +++ b/server/helpers/custom-validators/video-channels.ts @@ -1,21 +1,13 @@ -import * as Bluebird from 'bluebird' import * as express from 'express' import 'express-validator' import 'multer' import * as validator from 'validator' - -import { CONSTRAINTS_FIELDS, database as db } from '../../initializers' -import { VideoChannelInstance } from '../../models' -import { logger } from '../logger' -import { isActivityPubUrlValid } from './index' +import { CONSTRAINTS_FIELDS } from '../../initializers/constants' +import { VideoChannelModel } from '../../models/video/video-channel' import { exists } from './misc' const VIDEO_CHANNELS_CONSTRAINTS_FIELDS = CONSTRAINTS_FIELDS.VIDEO_CHANNELS -function isVideoChannelUrlValid (value: string) { - return isActivityPubUrlValid(value) -} - function isVideoChannelDescriptionValid (value: string) { return value === null || validator.isLength(value, VIDEO_CHANNELS_CONSTRAINTS_FIELDS.DESCRIPTION) } @@ -24,56 +16,53 @@ function isVideoChannelNameValid (value: string) { return exists(value) && validator.isLength(value, VIDEO_CHANNELS_CONSTRAINTS_FIELDS.NAME) } -function checkVideoChannelExists (id: string, res: express.Response, callback: () => void) { - let promise: Bluebird - if (validator.isInt(id)) { - promise = db.VideoChannel.loadAndPopulateAccount(+id) - } else { // UUID - promise = db.VideoChannel.loadByUUIDAndPopulateAccount(id) - } +function isVideoChannelSupportValid (value: string) { + return value === null || (exists(value) && validator.isLength(value, VIDEO_CHANNELS_CONSTRAINTS_FIELDS.SUPPORT)) +} - promise.then(videoChannel => { - if (!videoChannel) { - return res.status(404) - .json({ error: 'Video channel not found' }) - .end() - } +async function doesLocalVideoChannelNameExist (name: string, res: express.Response) { + const videoChannel = await VideoChannelModel.loadLocalByNameAndPopulateAccount(name) - res.locals.videoChannel = videoChannel - callback() - }) - .catch(err => { - logger.error('Error in video channel request validator.', err) - return res.sendStatus(500) - }) + return processVideoChannelExist(videoChannel, res) } -async function isVideoChannelExistsPromise (id: string, res: express.Response) { - let videoChannel: VideoChannelInstance - if (validator.isInt(id)) { - videoChannel = await db.VideoChannel.loadAndPopulateAccount(+id) +async function doesVideoChannelIdExist (id: number | string, res: express.Response) { + let videoChannel: VideoChannelModel + if (validator.isInt('' + id)) { + videoChannel = await VideoChannelModel.loadAndPopulateAccount(+id) } else { // UUID - videoChannel = await db.VideoChannel.loadByUUIDAndPopulateAccount(id) + videoChannel = await VideoChannelModel.loadByUUIDAndPopulateAccount('' + id) } - if (!videoChannel) { - res.status(404) - .json({ error: 'Video channel not found' }) - .end() + return processVideoChannelExist(videoChannel, res) +} - return false - } +async function doesVideoChannelNameWithHostExist (nameWithDomain: string, res: express.Response) { + const videoChannel = await VideoChannelModel.loadByNameWithHostAndPopulateAccount(nameWithDomain) - res.locals.videoChannel = videoChannel - return true + return processVideoChannelExist(videoChannel, res) } // --------------------------------------------------------------------------- export { + doesVideoChannelNameWithHostExist, + doesLocalVideoChannelNameExist, isVideoChannelDescriptionValid, - checkVideoChannelExists, isVideoChannelNameValid, - isVideoChannelExistsPromise, - isVideoChannelUrlValid + isVideoChannelSupportValid, + doesVideoChannelIdExist +} + +function processVideoChannelExist (videoChannel: VideoChannelModel, res: express.Response) { + if (!videoChannel) { + res.status(404) + .json({ error: 'Video channel not found' }) + .end() + + return false + } + + res.locals.videoChannel = videoChannel + return true }