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,7 +1,6 @@
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({
@@ -18,14 +17,16 @@ const CONSTANTS = {
serialNumber: Joi.func() serialNumber: Joi.func()
}), }),
overrides: Joi.object() overrides: Joi.object()
}), });
barcode: Joi.object().keys({
let barcode = Joi.object().keys({
altText: Joi.string(), altText: Joi.string(),
messageEncoding: Joi.string(), messageEncoding: Joi.string(),
format: Joi.string().required().regex(/(PKBarcodeFormatQR|PKBarcodeFormatPDF417|PKBarcodeFormatAztec|PKBarcodeFormatCode128)/, "barcodeType"), format: Joi.string().required().regex(/(PKBarcodeFormatQR|PKBarcodeFormatPDF417|PKBarcodeFormatAztec|PKBarcodeFormatCode128)/, "barcodeType"),
message: Joi.string().required() message: Joi.string().required()
}), });
field: Joi.object().keys({
let field = Joi.object().keys({
attributedValue: Joi.string(), attributedValue: Joi.string(),
changeMessage: Joi.string(), changeMessage: Joi.string(),
dataDetectorType: Joi.array().items(Joi.string().regex(/(PKDataDetectorTypePhoneNumber|PKDataDetectorTypeLink|PKDataDetectorTypeAddress|PKDataDetectorTypeCalendarEvent)/, "dataDetectorType")), dataDetectorType: Joi.array().items(Joi.string().regex(/(PKDataDetectorTypePhoneNumber|PKDataDetectorTypeLink|PKDataDetectorTypeAddress|PKDataDetectorTypeCalendarEvent)/, "dataDetectorType")),
@@ -33,19 +34,24 @@ const CONSTANTS = {
textAlignment: Joi.string().regex(/(PKTextAlignmentLeft|PKTextAlignmentCenter|PKTextAlignmentRight|PKTextAlignmentNatural)/, "graphic-alignment"), textAlignment: Joi.string().regex(/(PKTextAlignmentLeft|PKTextAlignmentCenter|PKTextAlignmentRight|PKTextAlignmentNatural)/, "graphic-alignment"),
key: Joi.string().required(), key: Joi.string().required(),
value: Joi.string().required() value: Joi.string().required()
}),
structure: Joi.object().keys({
auxiliaryFields: Joi.array().items(this.field),
backFields: Joi.array().items(this.field),
headerFields: Joi.array().items(this.field),
primaryFields: Joi.array().items(this.field),
secondaryFields: Joi.array().items(this.field),
transitType: Joi.string().regex(/(PKTransitTypeAir|PKTransitTypeBoat|PKTransitTypeBus|PKTransitTypeGeneric|PKTransitTypeTrain)/)
}) })
};
let structure = Joi.object().keys({
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;