import * as express from 'express'
-import { param } from 'express-validator/check'
-import {
- isUserDisplayNSFWValid,
- isUserPasswordValid,
- isUserRoleValid,
- isUserUsernameValid,
- isUserVideoQuotaValid,
- logger
-} from '../../helpers'
+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 { logger } from '../../helpers/logger'
+import { areValidationErrors } from './utils'
+import { doesAccountNameWithHostExist, doesLocalAccountNameExist } from '../../helpers/middlewares'
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, () => {
- checkLocalAccountExists(req.params.name, res, next)
- })
+ if (areValidationErrors(req, res)) return
+ if (!await doesLocalAccountNameExist(req.params.name, res)) return
+
+ return next()
}
]
-// ---------------------------------------------------------------------------
+const accountNameWithHostGetValidator = [
+ param('accountName').exists().withMessage('Should have an account name with host'),
-export {
- localAccountValidator
-}
+ 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 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
}