@accounter/server
Version:
46 lines • 2.66 kB
JavaScript
import { headerValidator, transactionValidator } from './index.js';
const digitsAdjuster = (value, length) => {
return `${'0'.repeat(length)}${value}`.slice(-length);
};
const cleanNonDigitChars = (value) => {
return value.replace(/\D/g, '');
};
export const transactionHandler = (transaction, options) => {
if (transaction.refNumber) {
const sanitizedNumber = cleanNonDigitChars(transaction.refNumber);
if (options.strict &&
(sanitizedNumber.length !== 9 || sanitizedNumber.length !== transaction.refNumber.length)) {
throw new Error(`Expected Transaction refNumber to be of 9 digits, received "${transaction.refNumber}". ${transaction.refNumber.length > 9 ? `Using the last 9 digits.` : `Adding leading zeros.`}`);
}
transaction.refNumber = digitsAdjuster(sanitizedNumber, 9);
}
if (transaction.vatId) {
const sanitizedNumber = cleanNonDigitChars(transaction.vatId);
if (options.strict &&
(sanitizedNumber.length !== 9 || sanitizedNumber.length !== transaction.vatId.length)) {
throw new Error(`Expected Transaction vatId to be of 9 digits, received "${transaction.vatId}". ${sanitizedNumber.length > 9 ? `Using the last 9 digits.` : `Adding leading zeros.`}`);
}
transaction.vatId = digitsAdjuster(sanitizedNumber, 9);
}
if (transaction.refGroup) {
const sanitizedNumber = cleanNonDigitChars(transaction.refGroup);
if (options.strict &&
(sanitizedNumber.length !== 4 || sanitizedNumber.length !== transaction.refGroup.length)) {
throw new Error(`Expected Transaction refGroup to be of 4 digits, received "${transaction.refGroup}". ${sanitizedNumber.length > 4 ? `Using the last 4 digits.` : `Adding leading zeros.`}`);
}
transaction.refGroup = digitsAdjuster(sanitizedNumber, 4);
}
return transactionValidator(transaction, options);
};
export const headerHandler = (header, options) => {
if (header.licensedDealerId && header.licensedDealerId.length !== 9) {
const sanitizedNumber = cleanNonDigitChars(header.licensedDealerId);
if (options.strict &&
(sanitizedNumber.length !== 9 || sanitizedNumber.length !== header.licensedDealerId.length)) {
throw new Error(`Expected Header licensedDealerId to be of 9 digits, received "${header.licensedDealerId}". ${sanitizedNumber.length > 9 ? `Using the last 9 digits.` : `Adding leading zeros.`}`);
}
header.licensedDealerId = digitsAdjuster(sanitizedNumber, 9);
}
return headerValidator(header);
};
//# sourceMappingURL=data-handlers.js.map