Skip to content
Snippets Groups Projects
Commit ef81062b authored by Yannis Barlas's avatar Yannis Barlas
Browse files

chore(*): check file storage config with joi validations

parent da0471fa
No related branches found
No related tags found
1 merge request!123v4
......@@ -26,13 +26,61 @@ const throwRemovedError = key => {
throw new ConfigSchemaError(`The "${key}" key has been removed.`)
}
const fileStorageRequired = errors => {
if (
errors.find(e => e.local.key === 'fileStorage' && e.code === 'any.required')
) {
return new Error(
'fileStorage configuration is required when useFileStorage is true',
)
}
return errors
}
const schema = Joi.object({
fileStorage: Joi.when('useFileStorage', {
is: true,
then: Joi.object({
accessKeyId: Joi.string().required(),
secretAccessKey: Joi.string().required(),
bucket: Joi.string().required(),
region: Joi.string().optional(),
protocol: Joi.string().required(),
host: Joi.string().required(),
port: Joi.alternatives().try(Joi.string(), Joi.number()).required(),
minioConsolePort: Joi.alternatives()
.try(Joi.string(), Joi.number())
.required(),
s3ForcePathStyle: Joi.boolean().optional(),
s3SeparateDeleteOperations: Joi.boolean().optional(),
maximumWidthForSmallImages: Joi.alternatives()
.try(Joi.string(), Joi.number())
.optional(),
maximumWidthForMediumImages: Joi.alternatives()
.try(Joi.string(), Joi.number())
.optional(),
})
.required()
.error(errors => fileStorageRequired(errors)),
otherwise: Joi.any().forbidden().messages({
'*': 'Cannot use file storage key when useFileStorage is false',
}),
}),
logger: Joi.object({
info: Joi.func().required(),
debug: Joi.func().required(),
error: Joi.func().required(),
warn: Joi.func().required(),
}).optional(),
useFileStorage: Joi.boolean().optional(),
useJobQueue: Joi.boolean().optional(),
})
const check = () => {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment