@defra/wls-eps-web-service
Version:
The web service for wildlife licencing of European Protected Species
37 lines (32 loc) • 1.26 kB
JavaScript
import Joi from 'joi'
import pageRoute from '../../routes/page-route.js'
export const validator = async (payload, skipValidations) => {
if (!payload['yes-no']) {
Joi.assert(payload, Joi.object({
'yes-no': Joi.any().required()
}).options({ abortEarly: false, allowUnknown: true }))
}
if (payload['yes-no'] === 'yes' && (skipValidations === undefined || !skipValidations.includes('yes-conditional-input'))) {
Joi.assert(payload, Joi.object({
'yes-conditional-input': Joi.string().trim().required().replace('\r\n', '\n').max(4000)
}).options({ abortEarly: false, allowUnknown: true }))
}
if (payload['yes-no'] === 'no' && (skipValidations === undefined || !skipValidations.includes('no-conditional-input'))) {
Joi.assert(payload, Joi.object({
'no-conditional-input': Joi.string().trim().required().replace('\r\n', '\n').max(4000)
}).options({ abortEarly: false, allowUnknown: true }))
}
}
export const yesNoConditionalPage = ({ page, uri, checkData, getData, completion, setData, options, backlink }, skipValidations) => pageRoute({
page,
uri,
checkData,
getData,
completion,
setData,
options,
validator: (payload) => {
return validator(payload, skipValidations)
},
backlink
})