X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmiddlewares%2Fvalidators%2Faccount.ts;h=551f67d61fb68dc8d0a506b9cdddfe275dca7ef9;hb=05a60d85997c108d39bcfb14f1ffd4c74f8b1e93;hp=07ae76b63f43e68ac45bae7db20260d4c3fe8247;hpb=79d5caf994edd87ad721994490f10677be277497;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/middlewares/validators/account.ts b/server/middlewares/validators/account.ts index 07ae76b63..551f67d61 100644 --- a/server/middlewares/validators/account.ts +++ b/server/middlewares/validators/account.ts @@ -1,45 +1,35 @@ -import * as express from 'express' -import { param } from 'express-validator/check' -import { logger } from '../../helpers' +import express from 'express' +import { param } from 'express-validator' import { isAccountNameValid } from '../../helpers/custom-validators/accounts' -import { database as db } from '../../initializers/database' -import { AccountInstance } from '../../models' -import { checkErrors } from './utils' +import { areValidationErrors, doesAccountNameWithHostExist, doesLocalAccountNameExist } from './shared' const localAccountValidator = [ - param('name').custom(isAccountNameValid).withMessage('Should have a valid account name'), + param('name') + .custom(isAccountNameValid), - (req: express.Request, res: express.Response, next: express.NextFunction) => { - logger.debug('Checking localAccountValidator parameters', { parameters: req.params }) + async (req: express.Request, res: express.Response, next: express.NextFunction) => { + if (areValidationErrors(req, res)) return + if (!await doesLocalAccountNameExist(req.params.name, res)) return - checkErrors(req, res, () => { - checkLocalAccountExists(req.params.name, res, next) - }) + return next() } ] -// --------------------------------------------------------------------------- +const accountNameWithHostGetValidator = [ + param('accountName') + .exists(), -export { - localAccountValidator -} + async (req: express.Request, res: express.Response, next: express.NextFunction) => { + if (areValidationErrors(req, res)) return + if (!await doesAccountNameWithHostExist(req.params.accountName, res)) return + + return next() + } +] // --------------------------------------------------------------------------- -function checkLocalAccountExists (name: string, res: express.Response, callback: (err: Error, account: AccountInstance) => void) { - db.Account.loadLocalByName(name) - .then(account => { - if (!account) { - return res.status(404) - .send({ error: 'Account not found' }) - .end() - } - - res.locals.account = account - return callback(null, account) - }) - .catch(err => { - logger.error('Error in account request validator.', err) - return res.sendStatus(500) - }) +export { + localAccountValidator, + accountNameWithHostGetValidator }