X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmiddlewares%2Fvalidators%2Fvideos%2Fvideo-channels.ts;h=882fb2b843a653dbe5fa02f7c55a26ef253dd9c3;hb=610d0be13b3d01f653ef269271dd667a57c85ef2;hp=d212745277336b650f5cf12ee9d265b7e7fdb3a5;hpb=8c559fad1e1c4c2ab7f1388c73200aa4c6256d74;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/middlewares/validators/videos/video-channels.ts b/server/middlewares/validators/videos/video-channels.ts index d21274527..882fb2b84 100644 --- a/server/middlewares/validators/videos/video-channels.ts +++ b/server/middlewares/validators/videos/video-channels.ts @@ -1,5 +1,5 @@ import * as express from 'express' -import { body, param } from 'express-validator' +import { body, param, query } from 'express-validator' import { UserRight } from '../../../../shared' import { isVideoChannelDescriptionValid, @@ -14,6 +14,7 @@ import { ActorModel } from '../../../models/activitypub/actor' import { isBooleanValid } from '../../../helpers/custom-validators/misc' import { doesLocalVideoChannelNameExist, doesVideoChannelNameWithHostExist } from '../../../helpers/middlewares' import { MChannelAccountDefault, MUser } from '@server/typings/models' +import { VIDEO_CHANNELS } from '@server/initializers/constants' const videoChannelsAddValidator = [ body('name').custom(isActorPreferredUsernameValid).withMessage('Should have a valid channel name'), @@ -34,6 +35,14 @@ const videoChannelsAddValidator = [ return false } + const count = await VideoChannelModel.countByAccount(res.locals.oauth.token.User.Account.id) + if (count >= VIDEO_CHANNELS.MAX_PER_USER) { + res.status(400) + .send({ error: `You cannot create more than ${VIDEO_CHANNELS.MAX_PER_USER} channels` }) + .end() + return false + } + return next() } ] @@ -119,6 +128,15 @@ const localVideoChannelValidator = [ } ] +const videoChannelStatsValidator = [ + query('withStats').optional().isBoolean().withMessage('Should have a valid stats flag'), + + (req: express.Request, res: express.Response, next: express.NextFunction) => { + if (areValidationErrors(req, res)) return + return next() + } +] + // --------------------------------------------------------------------------- export { @@ -126,7 +144,8 @@ export { videoChannelsUpdateValidator, videoChannelsRemoveValidator, videoChannelsNameWithHostValidator, - localVideoChannelValidator + localVideoChannelValidator, + videoChannelStatsValidator } // ---------------------------------------------------------------------------