Validation.js 718 B

1234567891011121314151617181920212223242526272829303132
  1. const { Joi: CelebrateJoi, celebrate, errors } = require('celebrate')
  2. const { ObjectId } = require('mongodb')
  3. const objectIdValidator = {
  4. name: 'objectId',
  5. language: {
  6. invalid: 'needs to be a valid ObjectId',
  7. },
  8. pre(value, state, options) {
  9. if (!ObjectId.isValid(value)) {
  10. return this.createError('objectId.invalid', { value }, state, options)
  11. }
  12. if (options.convert) {
  13. return new ObjectId(value)
  14. }
  15. return value
  16. },
  17. }
  18. const Joi = CelebrateJoi.extend(objectIdValidator)
  19. const errorMiddleware = errors()
  20. module.exports = { Joi, validate, errorMiddleware }
  21. /**
  22. * Validation middleware
  23. */
  24. function validate(schema) {
  25. return celebrate(schema, { allowUnknown: true })
  26. }