Added StringField class for transitType field;

Added parsing specific for transit inside _patch method that throws
Renamed fields.area in fieldsName
This commit is contained in:
alexandercerutti
2018-08-26 12:05:15 +02:00
parent 6b4ec893d8
commit 04b5058f3a
3 changed files with 28 additions and 6 deletions

View File

@@ -6,7 +6,7 @@ const forge = require("node-forge");
const archiver = require("archiver");
const moment = require("moment");
const schema = require("./schema");
const fields = require("./fields");
const { areas: fieldsName, FieldsContainer, StringField } = require("./fields");
const { errors, warnings } = require("./messages");
const readdir = util.promisify(fs.readdir);
@@ -21,7 +21,8 @@ class Pass {
this.props = {};
this.shouldOverwrite = !(this.options.hasOwnProperty("shouldOverwrite") && !this.options.shouldOverwrite);
fields.areas.forEach(a => this[a] = new fields.FieldsArea());
fieldsName.forEach(a => this[a] = new FieldsContainer());
this.transitType = new StringField();
}
/**
@@ -523,12 +524,18 @@ class Pass {
});
}
fields.areas.forEach(area => {
fieldsName.forEach(area => {
if (this[area].fields.length) {
passFile[this.type][area].push(...this[area].fields);
}
});
if (this.type === "boardingPass" && this.transitType) {
passFile[this.type]["transitType"] = this.transitType;
} else {
throw new Error("Cannot proceed with pass creation. transitType field is required for boardingPasses.");
}
return Promise.resolve(Buffer.from(JSON.stringify(passFile)));
}