mirror of
https://github.com/overleaf/overleaf.git
synced 2024-09-23 02:55:13 -04:00
1be43911b4
Set Prettier's "trailingComma" setting to "es5" GitOrigin-RevId: 9f14150511929a855b27467ad17be6ab262fe5d5
32 lines
718 B
JavaScript
32 lines
718 B
JavaScript
const { Joi: CelebrateJoi, celebrate, errors } = require('celebrate')
|
|
const { ObjectId } = require('mongodb')
|
|
|
|
const objectIdValidator = {
|
|
name: 'objectId',
|
|
language: {
|
|
invalid: 'needs to be a valid ObjectId',
|
|
},
|
|
pre(value, state, options) {
|
|
if (!ObjectId.isValid(value)) {
|
|
return this.createError('objectId.invalid', { value }, state, options)
|
|
}
|
|
|
|
if (options.convert) {
|
|
return new ObjectId(value)
|
|
}
|
|
|
|
return value
|
|
},
|
|
}
|
|
|
|
const Joi = CelebrateJoi.extend(objectIdValidator)
|
|
const errorMiddleware = errors()
|
|
|
|
module.exports = { Joi, validate, errorMiddleware }
|
|
|
|
/**
|
|
* Validation middleware
|
|
*/
|
|
function validate(schema) {
|
|
return celebrate(schema, { allowUnknown: true })
|
|
}
|