From 8a19bee1a1ee39f973bb37429e4f73c3f2873cdb Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 17 Aug 2018 15:45:42 +0200 Subject: Add ability to set a name to a channel --- server/middlewares/validators/feeds.ts | 11 +++++++---- server/middlewares/validators/video-channels.ts | 23 ++++++++++++----------- 2 files changed, 19 insertions(+), 15 deletions(-) (limited to 'server/middlewares/validators') diff --git a/server/middlewares/validators/feeds.ts b/server/middlewares/validators/feeds.ts index 3c8532bd9..c1054ad9b 100644 --- a/server/middlewares/validators/feeds.ts +++ b/server/middlewares/validators/feeds.ts @@ -1,13 +1,13 @@ import * as express from 'express' import { param, query } from 'express-validator/check' -import { isAccountIdExist, isAccountNameValid } from '../../helpers/custom-validators/accounts' -import { join } from 'path' +import { isAccountIdExist, isAccountNameValid, isAccountNameWithHostExist } from '../../helpers/custom-validators/accounts' import { isIdOrUUIDValid } from '../../helpers/custom-validators/misc' import { logger } from '../../helpers/logger' import { areValidationErrors } from './utils' import { isValidRSSFeed } from '../../helpers/custom-validators/feeds' -import { isVideoChannelExist } from '../../helpers/custom-validators/video-channels' +import { isVideoChannelIdExist, isVideoChannelNameWithHostExist } from '../../helpers/custom-validators/video-channels' import { isVideoExist } from '../../helpers/custom-validators/videos' +import { isActorPreferredUsernameValid } from '../../helpers/custom-validators/activitypub/actor' const videoFeedsValidator = [ param('format').optional().custom(isValidRSSFeed).withMessage('Should have a valid format (rss, atom, json)'), @@ -15,6 +15,7 @@ const videoFeedsValidator = [ query('accountId').optional().custom(isIdOrUUIDValid), query('accountName').optional().custom(isAccountNameValid), query('videoChannelId').optional().custom(isIdOrUUIDValid), + query('videoChannelName').optional().custom(isActorPreferredUsernameValid), async (req: express.Request, res: express.Response, next: express.NextFunction) => { logger.debug('Checking feeds parameters', { parameters: req.query }) @@ -22,7 +23,9 @@ const videoFeedsValidator = [ if (areValidationErrors(req, res)) return if (req.query.accountId && !await isAccountIdExist(req.query.accountId, res)) return - if (req.query.videoChannelId && !await isVideoChannelExist(req.query.videoChannelId, res)) return + if (req.query.videoChannelName && !await isVideoChannelIdExist(req.query.videoChannelName, res)) return + if (req.query.accountName && !await isAccountNameWithHostExist(req.query.accountName, res)) return + if (req.query.videoChannelName && !await isVideoChannelNameWithHostExist(req.query.videoChannelName, res)) return return next() } diff --git a/server/middlewares/validators/video-channels.ts b/server/middlewares/validators/video-channels.ts index d354c7e05..79587b028 100644 --- a/server/middlewares/validators/video-channels.ts +++ b/server/middlewares/validators/video-channels.ts @@ -2,18 +2,18 @@ import * as express from 'express' import { body, param } from 'express-validator/check' import { UserRight } from '../../../shared' import { isAccountNameWithHostExist } from '../../helpers/custom-validators/accounts' -import { isIdOrUUIDValid } from '../../helpers/custom-validators/misc' import { isLocalVideoChannelNameExist, isVideoChannelDescriptionValid, - isVideoChannelExist, isVideoChannelNameValid, + isVideoChannelNameWithHostExist, isVideoChannelSupportValid } from '../../helpers/custom-validators/video-channels' import { logger } from '../../helpers/logger' import { UserModel } from '../../models/account/user' import { VideoChannelModel } from '../../models/video/video-channel' import { areValidationErrors } from './utils' +import { isActorPreferredUsernameValid } from '../../helpers/custom-validators/activitypub/actor' const listVideoAccountChannelsValidator = [ param('accountName').exists().withMessage('Should have a valid account name'), @@ -29,6 +29,7 @@ const listVideoAccountChannelsValidator = [ ] const videoChannelsAddValidator = [ + body('name').custom(isActorPreferredUsernameValid).withMessage('Should have a valid channel name'), body('displayName').custom(isVideoChannelNameValid).withMessage('Should have a valid display name'), body('description').optional().custom(isVideoChannelDescriptionValid).withMessage('Should have a valid description'), body('support').optional().custom(isVideoChannelSupportValid).withMessage('Should have a valid support text'), @@ -43,7 +44,7 @@ const videoChannelsAddValidator = [ ] const videoChannelsUpdateValidator = [ - param('id').custom(isIdOrUUIDValid).not().isEmpty().withMessage('Should have a valid id'), + param('nameWithHost').exists().withMessage('Should have an video channel name with host'), body('displayName').optional().custom(isVideoChannelNameValid).withMessage('Should have a valid display name'), body('description').optional().custom(isVideoChannelDescriptionValid).withMessage('Should have a valid description'), body('support').optional().custom(isVideoChannelSupportValid).withMessage('Should have a valid support text'), @@ -52,7 +53,7 @@ const videoChannelsUpdateValidator = [ logger.debug('Checking videoChannelsUpdate parameters', { parameters: req.body }) if (areValidationErrors(req, res)) return - if (!await isVideoChannelExist(req.params.id, res)) return + if (!await isVideoChannelNameWithHostExist(req.params.nameWithHost, res)) return // We need to make additional checks if (res.locals.videoChannel.Actor.isOwned() === false) { @@ -72,13 +73,13 @@ const videoChannelsUpdateValidator = [ ] const videoChannelsRemoveValidator = [ - param('id').custom(isIdOrUUIDValid).not().isEmpty().withMessage('Should have a valid id'), + param('nameWithHost').exists().withMessage('Should have an video channel name with host'), async (req: express.Request, res: express.Response, next: express.NextFunction) => { logger.debug('Checking videoChannelsRemove parameters', { parameters: req.params }) if (areValidationErrors(req, res)) return - if (!await isVideoChannelExist(req.params.id, res)) return + if (!await isVideoChannelNameWithHostExist(req.params.nameWithHost, res)) return if (!checkUserCanDeleteVideoChannel(res.locals.oauth.token.User, res.locals.videoChannel, res)) return if (!await checkVideoChannelIsNotTheLastOne(res)) return @@ -87,15 +88,15 @@ const videoChannelsRemoveValidator = [ } ] -const videoChannelsGetValidator = [ - param('id').custom(isIdOrUUIDValid).not().isEmpty().withMessage('Should have a valid id'), +const videoChannelsNameWithHostValidator = [ + param('nameWithHost').exists().withMessage('Should have an video channel name with host'), async (req: express.Request, res: express.Response, next: express.NextFunction) => { - logger.debug('Checking videoChannelsGet parameters', { parameters: req.params }) + logger.debug('Checking videoChannelsNameWithHostValidator parameters', { parameters: req.params }) if (areValidationErrors(req, res)) return - if (!await isVideoChannelExist(req.params.id, res)) return + if (!await isVideoChannelNameWithHostExist(req.params.nameWithHost, res)) return return next() } @@ -121,7 +122,7 @@ export { videoChannelsAddValidator, videoChannelsUpdateValidator, videoChannelsRemoveValidator, - videoChannelsGetValidator, + videoChannelsNameWithHostValidator, localVideoChannelValidator } -- cgit v1.2.3