| 12345678910111213141516171819202122232425262728293031323334 |
- const { Joi: CelebrateJoi, celebrate, errors } = require('celebrate')
- const { ObjectId } = require('mongodb-legacy')
- const objectIdValidator = {
- type: 'objectId',
- base: CelebrateJoi.any(),
- messages: {
- 'objectId.invalid': 'needs to be a valid ObjectId',
- },
- coerce(value) {
- return {
- value: typeof value === typeof ObjectId ? value : new ObjectId(value),
- }
- },
- prepare(value, helpers) {
- if (!ObjectId.isValid(value)) {
- return {
- errors: helpers.error('objectId.invalid'),
- }
- }
- },
- }
- const Joi = CelebrateJoi.extend(objectIdValidator)
- const errorMiddleware = errors()
- module.exports = { Joi, validate, errorMiddleware }
- /**
- * Validation middleware
- */
- function validate(schema) {
- return celebrate(schema, { allowUnknown: true })
- }
|