X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmiddlewares%2Fvalidators%2Faccount.ts;h=0c4b7051dc51e14bc5fcf5df059976e013792b0c;hb=901637bb87f5eb0518fb7ca69d98b53ed918339e;hp=47ed6a7bb1591ac56f7e5d9979baf3defee9fa13;hpb=4e50b6a1c9a3eb261e04ede73241648e6edf21d6;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/middlewares/validators/account.ts b/server/middlewares/validators/account.ts index 47ed6a7bb..0c4b7051d 100644 --- a/server/middlewares/validators/account.ts +++ b/server/middlewares/validators/account.ts @@ -1,23 +1,58 @@ import * as express from 'express' import { param } from 'express-validator/check' -import { logger } from '../../helpers' -import { checkLocalAccountNameExists, isAccountNameValid } from '../../helpers/custom-validators/accounts' -import { checkErrors } from './utils' +import { + isAccountIdExist, + isAccountNameValid, + isAccountNameWithHostExist, + isLocalAccountNameExist +} from '../../helpers/custom-validators/accounts' +import { isIdOrUUIDValid } from '../../helpers/custom-validators/misc' +import { logger } from '../../helpers/logger' +import { areValidationErrors } from './utils' const localAccountValidator = [ param('name').custom(isAccountNameValid).withMessage('Should have a valid account name'), - (req: express.Request, res: express.Response, next: express.NextFunction) => { + async (req: express.Request, res: express.Response, next: express.NextFunction) => { logger.debug('Checking localAccountValidator parameters', { parameters: req.params }) - checkErrors(req, res, () => { - checkLocalAccountNameExists(req.params.name, res, next) - }) + if (areValidationErrors(req, res)) return + if (!await isLocalAccountNameExist(req.params.name, res)) return + + return next() + } +] + +const accountsGetValidator = [ + param('id').custom(isIdOrUUIDValid).withMessage('Should have a valid id'), + + async (req: express.Request, res: express.Response, next: express.NextFunction) => { + logger.debug('Checking accountsGetValidator parameters', { parameters: req.params }) + + if (areValidationErrors(req, res)) return + if (!await isAccountIdExist(req.params.id, res)) return + + return next() + } +] + +const accountsNameWithHostGetValidator = [ + param('nameWithHost').exists().withMessage('Should have an account name with host'), + + async (req: express.Request, res: express.Response, next: express.NextFunction) => { + logger.debug('Checking accountsNameWithHostGetValidator parameters', { parameters: req.params }) + + if (areValidationErrors(req, res)) return + if (!await isAccountNameWithHostExist(req.params.nameWithHost, res)) return + + return next() } ] // --------------------------------------------------------------------------- export { - localAccountValidator + localAccountValidator, + accountsGetValidator, + accountsNameWithHostGetValidator }