account.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import * as express from 'express'
  2. import { param } from 'express-validator'
  3. import { isAccountNameValid } from '../../helpers/custom-validators/accounts'
  4. import { logger } from '../../helpers/logger'
  5. import { areValidationErrors } from './utils'
  6. import { doesAccountNameWithHostExist, doesLocalAccountNameExist } from '../../helpers/middlewares'
  7. const localAccountValidator = [
  8. param('name').custom(isAccountNameValid).withMessage('Should have a valid account name'),
  9. async (req: express.Request, res: express.Response, next: express.NextFunction) => {
  10. logger.debug('Checking localAccountValidator parameters', { parameters: req.params })
  11. if (areValidationErrors(req, res)) return
  12. if (!await doesLocalAccountNameExist(req.params.name, res)) return
  13. return next()
  14. }
  15. ]
  16. const accountNameWithHostGetValidator = [
  17. param('accountName').exists().withMessage('Should have an account name with host'),
  18. async (req: express.Request, res: express.Response, next: express.NextFunction) => {
  19. logger.debug('Checking accountsNameWithHostGetValidator parameters', { parameters: req.params })
  20. if (areValidationErrors(req, res)) return
  21. if (!await doesAccountNameWithHostExist(req.params.accountName, res)) return
  22. return next()
  23. }
  24. ]
  25. // ---------------------------------------------------------------------------
  26. export {
  27. localAccountValidator,
  28. accountNameWithHostGetValidator
  29. }