modem-pay-iso
Version:
A javascript library for messaging in iso 8583 messaging format.
40 lines (39 loc) • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const errors_1 = require("./errors");
const helpers = require("./helpers");
const defaultRequiredFieldsSchema = [
{
processing_code: '000000',
required_fields: [0, 2, 4],
},
{
processing_code: '000002',
required_fields: [0],
},
{
processing_code: '999999',
required_fields: [
{
'0100': [3, 7],
'0500': [3, 7, 11],
},
],
},
];
// Breaking change: No dynmaic file import. Pass the config
function default_1(data, requiredFieldsConfig = defaultRequiredFieldsSchema) {
const conf = requiredFieldsConfig || defaultRequiredFieldsSchema;
const message_code = data[0];
const processing_code = data[3];
const key = 'required_fields';
const required_fields = helpers.findRequiredFields(conf, key, processing_code, message_code);
const iso_fields = helpers.extractBits(data);
const missing_fields = helpers.matchValues(required_fields, iso_fields);
if (missing_fields.length > 0) {
return new errors_1.DefaultError('Processing code: ' + processing_code + ' - Missing required fields: ' + missing_fields);
}
return true;
}
exports.default = default_1;
;