From 788245b1404368cfb863e86cd8c41e5613ecfd4e Mon Sep 17 00:00:00 2001 From: alexandercerutti Date: Mon, 27 Aug 2018 14:00:02 +0200 Subject: [PATCH] Applied some changes for schema for a more correct validation --- index.js | 2 +- schema.js | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/index.js b/index.js index 35f2a84..2ac6844 100644 --- a/index.js +++ b/index.js @@ -303,7 +303,7 @@ class Pass { } // messageEncoding is required - b.messageEncoding = b.messageEncoding || "iso-8859-1"; + // b.messageEncoding = b.messageEncoding || "iso-8859-1"; return schema.isValid(b, schema.constants.barcode); }); diff --git a/schema.js b/schema.js index 42bb5e8..715ba22 100644 --- a/schema.js +++ b/schema.js @@ -1,4 +1,5 @@ const Joi = require("joi"); +const debug = require("debug")("Schema"); let instance = Joi.object().keys({ model: Joi.string(), @@ -16,24 +17,24 @@ let instance = Joi.object().keys({ let barcode = Joi.object().keys({ 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"), message: Joi.string().required() }); let field = Joi.object().keys({ - attributedValue: Joi.string(), - changeMessage: Joi.string(), + attributedValue: Joi.string().allow(""), + changeMessage: Joi.string().allow("").regex(/%@/), 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"), key: Joi.string().required(), - value: Joi.string().required() + value: Joi.string().allow("").required() }); let beaconsDict = Joi.object().keys({ - major: Joi.number().integer().positive().max(65535), - minor: Joi.number().integer().positive().max(65535), + major: Joi.number().integer().positive().max(65535).greater(Joi.ref("minor")), + minor: Joi.number().integer().positive().max(65535).less(Joi.ref("major")), proximityUUID: Joi.string().required(), relevantText: Joi.string() });