iso8583_esm
Version:
A javascript library for messaging in iso 8583 messaging format.
36 lines (35 loc) • 1.21 kB
JavaScript
import { DefaultError } from './errors';
import * as helpers from './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
export function requiredFields(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 DefaultError('Processing code: ' + processing_code + ' - Missing required fields: ' + missing_fields);
}
return true;
}