Added support to a new field additionalInfoFields

This commit is contained in:
Alexander Cerutti
2024-10-17 01:46:27 +02:00
parent 2b7be248b4
commit d871580fbf
3 changed files with 53 additions and 0 deletions

View File

@@ -359,6 +359,18 @@ export default class PKPass extends Bundle {
return this[propsSymbol][this.type].backFields;
}
/**
* Allows accessing to backFields object
*
* @throws (automatically) if no valid pass.json
* has been parsed yet or, anyway, if current
* type is not "eventTicket".
*/
public get additionalInfoFields(): Schemas.Field[] {
return this[propsSymbol]["eventTicket"].additionalInfoFields;
}
/**
* Allows setting a pass type.
*
@@ -420,6 +432,11 @@ export default class PKPass extends Bundle {
sharedKeysPool,
Schemas.Field,
),
additionalInfoFields: new FieldsArray(
this,
sharedKeysPool,
Schemas.Field,
),
transitType: undefined,
};
}
@@ -589,6 +606,7 @@ export default class PKPass extends Bundle {
auxiliaryFields = [],
backFields = [],
transitType,
additionalInfoFields = [],
} = data[type] || {};
this.headerFields.push(...headerFields);
@@ -596,6 +614,7 @@ export default class PKPass extends Bundle {
this.secondaryFields.push(...secondaryFields);
this.auxiliaryFields.push(...auxiliaryFields);
this.backFields.push(...backFields);
this.additionalInfoFields.push(...additionalInfoFields);
if (this.type === "boardingPass") {
this.transitType = transitType;

View File

@@ -19,6 +19,7 @@ export interface PassFields {
primaryFields: Field[];
secondaryFields: Field[];
transitType?: TransitType;
additionalInfoFields?: Field[];
}
export const PassFields = Joi.object<PassFields>().keys({
@@ -28,4 +29,5 @@ export const PassFields = Joi.object<PassFields>().keys({
primaryFields: Joi.array().items(Field),
secondaryFields: Joi.array().items(Field),
transitType: TransitType,
additionalInfoFields: Joi.array().items(Field),
});