Edited schemas, moved outside the object all the schemas,

added schemas for structure and field
This commit is contained in:
alexandercerutti
2018-07-23 11:19:02 +02:00
parent c05bd130c3
commit fa2b656efd

View File

@@ -1,51 +1,57 @@
const Joi = require("joi"); const Joi = require("joi");
const CONSTANTS = { let instance = Joi.object().keys({
instance: Joi.object().keys({ modelDir: Joi.string().required(),
modelDir: Joi.string().required(), modelName: Joi.string(),
modelName: Joi.string(), certificates: Joi.object().keys({
certificates: Joi.object().keys({ dir: Joi.string().required(),
dir: Joi.string().required(), wwdr: Joi.string().required(),
wwdr: Joi.string().required(), signerCert: Joi.string().required(),
signerCert: Joi.string().required(), signerKey: Joi.object().keys({
signerKey: Joi.object().keys({ keyFile: Joi.string().required(),
keyFile: Joi.string().required(), passphrase: Joi.string().required(),
passphrase: Joi.string().required(), }).required()
}).required() }).required(),
}).required(), handlers: Joi.object().keys({
handlers: Joi.object().keys({ barcode: Joi.func(),
barcode: Joi.func(), serialNumber: Joi.func()
serialNumber: Joi.func()
}),
overrides: Joi.object()
}), }),
barcode: Joi.object().keys({ overrides: Joi.object()
altText: Joi.string(), });
messageEncoding: Joi.string(),
format: Joi.string().required().regex(/(PKBarcodeFormatQR|PKBarcodeFormatPDF417|PKBarcodeFormatAztec|PKBarcodeFormatCode128)/, "barcodeType"), let barcode = Joi.object().keys({
message: Joi.string().required() altText: Joi.string(),
}), messageEncoding: Joi.string(),
field: Joi.object().keys({ format: Joi.string().required().regex(/(PKBarcodeFormatQR|PKBarcodeFormatPDF417|PKBarcodeFormatAztec|PKBarcodeFormatCode128)/, "barcodeType"),
attributedValue: Joi.string(), message: Joi.string().required()
changeMessage: Joi.string(), });
dataDetectorType: Joi.array().items(Joi.string().regex(/(PKDataDetectorTypePhoneNumber|PKDataDetectorTypeLink|PKDataDetectorTypeAddress|PKDataDetectorTypeCalendarEvent)/, "dataDetectorType")),
label: Joi.string(), let field = Joi.object().keys({
textAlignment: Joi.string().regex(/(PKTextAlignmentLeft|PKTextAlignmentCenter|PKTextAlignmentRight|PKTextAlignmentNatural)/, "graphic-alignment"), attributedValue: Joi.string(),
key: Joi.string().required(), changeMessage: Joi.string(),
value: Joi.string().required() dataDetectorType: Joi.array().items(Joi.string().regex(/(PKDataDetectorTypePhoneNumber|PKDataDetectorTypeLink|PKDataDetectorTypeAddress|PKDataDetectorTypeCalendarEvent)/, "dataDetectorType")),
}), label: Joi.string(),
structure: Joi.object().keys({ textAlignment: Joi.string().regex(/(PKTextAlignmentLeft|PKTextAlignmentCenter|PKTextAlignmentRight|PKTextAlignmentNatural)/, "graphic-alignment"),
auxiliaryFields: Joi.array().items(this.field), key: Joi.string().required(),
backFields: Joi.array().items(this.field), value: Joi.string().required()
headerFields: Joi.array().items(this.field), })
primaryFields: Joi.array().items(this.field),
secondaryFields: Joi.array().items(this.field), let structure = Joi.object().keys({
transitType: Joi.string().regex(/(PKTransitTypeAir|PKTransitTypeBoat|PKTransitTypeBus|PKTransitTypeGeneric|PKTransitTypeTrain)/) auxiliaryFields: Joi.array().items(field),
}) backFields: Joi.array().items(field),
}; headerFields: Joi.array().items(field),
primaryFields: Joi.array().items(field),
secondaryFields: Joi.array().items(field),
transitType: Joi.string().regex(/(PKTransitTypeAir|PKTransitTypeBoat|PKTransitTypeBus|PKTransitTypeGeneric|PKTransitTypeTrain)/)
});
module.exports = { module.exports = {
CONSTANTS, constants: {
instance,
barcode,
field,
structure
},
isValid: (opts, schemaName) => { isValid: (opts, schemaName) => {
let validation = Joi.validate(opts, schemaName); let validation = Joi.validate(opts, schemaName);
return !validation.error; return !validation.error;