I want to accept a request that sends several query parameters with it and I am validating it using Joi library in Nodejs/Express but can't figure out how to validate time zone values(which is one of the query parameters?
function validateLedger(ledger){
let schema=Joi.object({
startDate:Joi.date().iso(),
endDate:Joi.date().iso().greater(Joi.ref('startDate')),
paymentFrequency:Joi.string().valid('weekly','fortnightly','monthly'),
weeklyRate:Joi.number().greater(0),
timeZone://this needs to be validated
});
return schema.validate(ledger)
}
I just used joi-tz please find the code below
const Joi=require('joi')
const JoiTimezone=require('joi-tz')
const JoiTZ = Joi.extend(JoiTimezone);
function validateLedger(ledger){
let schema=Joi.object({
startDate:Joi.date().iso(),
endDate:Joi.date().iso().greater(Joi.ref('startDate')),
paymentFrequency:Joi.string().valid('weekly','fortnightly','monthly'),
weeklyRate:Joi.number().greater(0),
timeZone:JoiTZ.timezone().required()//the answer
});
return schema.validate(ledger)
}