Applied some changes for schema for a more correct validation

This commit is contained in:
alexandercerutti
2018-08-27 14:00:02 +02:00
parent 9e812e9d10
commit 788245b140
2 changed files with 9 additions and 8 deletions

View File

@@ -303,7 +303,7 @@ class Pass {
} }
// messageEncoding is required // messageEncoding is required
b.messageEncoding = b.messageEncoding || "iso-8859-1"; // b.messageEncoding = b.messageEncoding || "iso-8859-1";
return schema.isValid(b, schema.constants.barcode); return schema.isValid(b, schema.constants.barcode);
}); });

View File

@@ -1,4 +1,5 @@
const Joi = require("joi"); const Joi = require("joi");
const debug = require("debug")("Schema");
let instance = Joi.object().keys({ let instance = Joi.object().keys({
model: Joi.string(), model: Joi.string(),
@@ -16,24 +17,24 @@ let instance = Joi.object().keys({
let barcode = Joi.object().keys({ let barcode = Joi.object().keys({
altText: Joi.string(), altText: Joi.string(),
messageEncoding: Joi.string().required(), messageEncoding: Joi.string().default("iso-8859-1").required(),
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()
}); });
let field = Joi.object().keys({ let field = Joi.object().keys({
attributedValue: Joi.string(), attributedValue: Joi.string().allow(""),
changeMessage: Joi.string(), changeMessage: Joi.string().allow("").regex(/%@/),
dataDetectorType: Joi.array().items(Joi.string().regex(/(PKDataDetectorTypePhoneNumber|PKDataDetectorTypeLink|PKDataDetectorTypeAddress|PKDataDetectorTypeCalendarEvent)/, "dataDetectorType")), dataDetectorType: Joi.array().items(Joi.string().regex(/(PKDataDetectorTypePhoneNumber|PKDataDetectorTypeLink|PKDataDetectorTypeAddress|PKDataDetectorTypeCalendarEvent)/, "dataDetectorType")),
label: Joi.string(), label: Joi.string().allow(""),
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().allow("").required()
}); });
let beaconsDict = Joi.object().keys({ let beaconsDict = Joi.object().keys({
major: Joi.number().integer().positive().max(65535), major: Joi.number().integer().positive().max(65535).greater(Joi.ref("minor")),
minor: Joi.number().integer().positive().max(65535), minor: Joi.number().integer().positive().max(65535).less(Joi.ref("major")),
proximityUUID: Joi.string().required(), proximityUUID: Joi.string().required(),
relevantText: Joi.string() relevantText: Joi.string()
}); });