X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcustom-validators%2Fvideo-channels.ts;h=249083f39a0dbc898d05bd6cfb7efa87735ac3c2;hb=67ad83d0faa5924a566bc8260918439614694c85;hp=f13519c1dd0de4fe1604d482e83da2fdadda541b;hpb=8a19bee1a1ee39f973bb37429e4f73c3f2873cdb;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/custom-validators/video-channels.ts b/server/helpers/custom-validators/video-channels.ts index f13519c1d..249083f39 100644 --- a/server/helpers/custom-validators/video-channels.ts +++ b/server/helpers/custom-validators/video-channels.ts @@ -1,18 +1,20 @@ -import * as express from 'express' -import 'express-validator' -import 'multer' -import * as validator from 'validator' -import { CONFIG, CONSTRAINTS_FIELDS } from '../../initializers' -import { VideoChannelModel } from '../../models/video/video-channel' +import validator from 'validator' +import { CONSTRAINTS_FIELDS } from '../../initializers/constants' import { exists } from './misc' +import { isUserUsernameValid } from './users' const VIDEO_CHANNELS_CONSTRAINTS_FIELDS = CONSTRAINTS_FIELDS.VIDEO_CHANNELS +function isVideoChannelUsernameValid (value: string) { + // Use the same constraints than user username + return isUserUsernameValid(value) +} + function isVideoChannelDescriptionValid (value: string) { return value === null || validator.isLength(value, VIDEO_CHANNELS_CONSTRAINTS_FIELDS.DESCRIPTION) } -function isVideoChannelNameValid (value: string) { +function isVideoChannelDisplayNameValid (value: string) { return exists(value) && validator.isLength(value, VIDEO_CHANNELS_CONSTRAINTS_FIELDS.NAME) } @@ -20,53 +22,11 @@ function isVideoChannelSupportValid (value: string) { return value === null || (exists(value) && validator.isLength(value, VIDEO_CHANNELS_CONSTRAINTS_FIELDS.SUPPORT)) } -async function isLocalVideoChannelNameExist (name: string, res: express.Response) { - const videoChannel = await VideoChannelModel.loadLocalByNameAndPopulateAccount(name) - - return processVideoChannelExist(videoChannel, res) -} - -async function isVideoChannelIdExist (id: string, res: express.Response) { - let videoChannel: VideoChannelModel - if (validator.isInt(id)) { - videoChannel = await VideoChannelModel.loadAndPopulateAccount(+id) - } else { // UUID - videoChannel = await VideoChannelModel.loadByUUIDAndPopulateAccount(id) - } - - return processVideoChannelExist(videoChannel, res) -} - -async function isVideoChannelNameWithHostExist (nameWithDomain: string, res: express.Response) { - const [ name, host ] = nameWithDomain.split('@') - let videoChannel: VideoChannelModel - - if (!host || host === CONFIG.WEBSERVER.HOST) videoChannel = await VideoChannelModel.loadLocalByNameAndPopulateAccount(name) - else videoChannel = await VideoChannelModel.loadByNameAndHostAndPopulateAccount(name, host) - - return processVideoChannelExist(videoChannel, res) -} - // --------------------------------------------------------------------------- export { - isVideoChannelNameWithHostExist, - isLocalVideoChannelNameExist, + isVideoChannelUsernameValid, isVideoChannelDescriptionValid, - isVideoChannelNameValid, - isVideoChannelSupportValid, - isVideoChannelIdExist -} - -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 + isVideoChannelDisplayNameValid, + isVideoChannelSupportValid }