israeli-bank-scrapers-core
Version:
Provide scrapers for all major Israeli banks and credit card companies
47 lines (46 loc) • 7.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.filterOldTransactions = filterOldTransactions;
exports.fixInstallments = fixInstallments;
exports.sortTransactionsByDate = sortTransactionsByDate;
var _lodash = _interopRequireDefault(require("lodash"));
var _moment = _interopRequireDefault(require("moment"));
var _transactions = require("../transactions");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function isNormalTransaction(txn) {
return txn && txn.type === _transactions.TransactionTypes.Normal;
}
function isInstallmentTransaction(txn) {
return txn && txn.type === _transactions.TransactionTypes.Installments;
}
function isNonInitialInstallmentTransaction(txn) {
return isInstallmentTransaction(txn) && !!txn.installments && txn.installments.number > 1;
}
function isInitialInstallmentTransaction(txn) {
return isInstallmentTransaction(txn) && !!txn.installments && txn.installments.number === 1;
}
function fixInstallments(txns) {
return txns.map(txn => {
const clonedTxn = {
...txn
};
if (isInstallmentTransaction(clonedTxn) && isNonInitialInstallmentTransaction(clonedTxn) && clonedTxn.installments) {
const dateMoment = (0, _moment.default)(clonedTxn.date);
const actualDateMoment = dateMoment.add(clonedTxn.installments.number - 1, 'month');
clonedTxn.date = actualDateMoment.toISOString();
}
return clonedTxn;
});
}
function sortTransactionsByDate(txns) {
return _lodash.default.sortBy(txns, ['date']);
}
function filterOldTransactions(txns, startMoment, combineInstallments) {
return txns.filter(txn => {
const combineNeededAndInitialOrNormal = combineInstallments && (isNormalTransaction(txn) || isInitialInstallmentTransaction(txn));
return !combineInstallments && startMoment.isSameOrBefore(txn.date) || combineNeededAndInitialOrNormal && startMoment.isSameOrBefore(txn.date);
});
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbW9tZW50IiwiX3RyYW5zYWN0aW9ucyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImlzTm9ybWFsVHJhbnNhY3Rpb24iLCJ0eG4iLCJ0eXBlIiwiVHJhbnNhY3Rpb25UeXBlcyIsIk5vcm1hbCIsImlzSW5zdGFsbG1lbnRUcmFuc2FjdGlvbiIsIkluc3RhbGxtZW50cyIsImlzTm9uSW5pdGlhbEluc3RhbGxtZW50VHJhbnNhY3Rpb24iLCJpbnN0YWxsbWVudHMiLCJudW1iZXIiLCJpc0luaXRpYWxJbnN0YWxsbWVudFRyYW5zYWN0aW9uIiwiZml4SW5zdGFsbG1lbnRzIiwidHhucyIsIm1hcCIsImNsb25lZFR4biIsImRhdGVNb21lbnQiLCJtb21lbnQiLCJkYXRlIiwiYWN0dWFsRGF0ZU1vbWVudCIsImFkZCIsInRvSVNPU3RyaW5nIiwic29ydFRyYW5zYWN0aW9uc0J5RGF0ZSIsIl8iLCJzb3J0QnkiLCJmaWx0ZXJPbGRUcmFuc2FjdGlvbnMiLCJzdGFydE1vbWVudCIsImNvbWJpbmVJbnN0YWxsbWVudHMiLCJmaWx0ZXIiLCJjb21iaW5lTmVlZGVkQW5kSW5pdGlhbE9yTm9ybWFsIiwiaXNTYW1lT3JCZWZvcmUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy90cmFuc2FjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQsIHsgdHlwZSBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlcywgdHlwZSBUcmFuc2FjdGlvbiB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5cbmZ1bmN0aW9uIGlzTm9ybWFsVHJhbnNhY3Rpb24odHhuOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR4biAmJiB0eG4udHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWw7XG59XG5cbmZ1bmN0aW9uIGlzSW5zdGFsbG1lbnRUcmFuc2FjdGlvbih0eG46IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHhuICYmIHR4bi50eXBlID09PSBUcmFuc2FjdGlvblR5cGVzLkluc3RhbGxtZW50cztcbn1cblxuZnVuY3Rpb24gaXNOb25Jbml0aWFsSW5zdGFsbG1lbnRUcmFuc2FjdGlvbih0eG46IFRyYW5zYWN0aW9uKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0luc3RhbGxtZW50VHJhbnNhY3Rpb24odHhuKSAmJiAhIXR4bi5pbnN0YWxsbWVudHMgJiYgdHhuLmluc3RhbGxtZW50cy5udW1iZXIgPiAxO1xufVxuXG5mdW5jdGlvbiBpc0luaXRpYWxJbnN0YWxsbWVudFRyYW5zYWN0aW9uKHR4bjogVHJhbnNhY3Rpb24pOiBib29sZWFuIHtcbiAgcmV0dXJuIGlzSW5zdGFsbG1lbnRUcmFuc2FjdGlvbih0eG4pICYmICEhdHhuLmluc3RhbGxtZW50cyAmJiB0eG4uaW5zdGFsbG1lbnRzLm51bWJlciA9PT0gMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpeEluc3RhbGxtZW50cyh0eG5zOiBUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSB7XG4gIHJldHVybiB0eG5zLm1hcCgodHhuOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgIGNvbnN0IGNsb25lZFR4biA9IHsgLi4udHhuIH07XG5cbiAgICBpZiAoXG4gICAgICBpc0luc3RhbGxtZW50VHJhbnNhY3Rpb24oY2xvbmVkVHhuKSAmJlxuICAgICAgaXNOb25Jbml0aWFsSW5zdGFsbG1lbnRUcmFuc2FjdGlvbihjbG9uZWRUeG4pICYmXG4gICAgICBjbG9uZWRUeG4uaW5zdGFsbG1lbnRzXG4gICAgKSB7XG4gICAgICBjb25zdCBkYXRlTW9tZW50ID0gbW9tZW50KGNsb25lZFR4bi5kYXRlKTtcbiAgICAgIGNvbnN0IGFjdHVhbERhdGVNb21lbnQgPSBkYXRlTW9tZW50LmFkZChjbG9uZWRUeG4uaW5zdGFsbG1lbnRzLm51bWJlciAtIDEsICdtb250aCcpO1xuICAgICAgY2xvbmVkVHhuLmRhdGUgPSBhY3R1YWxEYXRlTW9tZW50LnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuICAgIHJldHVybiBjbG9uZWRUeG47XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29ydFRyYW5zYWN0aW9uc0J5RGF0ZSh0eG5zOiBUcmFuc2FjdGlvbltdKSB7XG4gIHJldHVybiBfLnNvcnRCeSh0eG5zLCBbJ2RhdGUnXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJPbGRUcmFuc2FjdGlvbnModHhuczogVHJhbnNhY3Rpb25bXSwgc3RhcnRNb21lbnQ6IE1vbWVudCwgY29tYmluZUluc3RhbGxtZW50czogYm9vbGVhbikge1xuICByZXR1cm4gdHhucy5maWx0ZXIodHhuID0+IHtcbiAgICBjb25zdCBjb21iaW5lTmVlZGVkQW5kSW5pdGlhbE9yTm9ybWFsID1cbiAgICAgIGNvbWJpbmVJbnN0YWxsbWVudHMgJiYgKGlzTm9ybWFsVHJhbnNhY3Rpb24odHhuKSB8fCBpc0luaXRpYWxJbnN0YWxsbWVudFRyYW5zYWN0aW9uKHR4bikpO1xuICAgIHJldHVybiAoXG4gICAgICAoIWNvbWJpbmVJbnN0YWxsbWVudHMgJiYgc3RhcnRNb21lbnQuaXNTYW1lT3JCZWZvcmUodHhuLmRhdGUpKSB8fFxuICAgICAgKGNvbWJpbmVOZWVkZWRBbmRJbml0aWFsT3JOb3JtYWwgJiYgc3RhcnRNb21lbnQuaXNTYW1lT3JCZWZvcmUodHhuLmRhdGUpKVxuICAgICk7XG4gIH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLGFBQUEsR0FBQUYsT0FBQTtBQUFxRSxTQUFBRCx1QkFBQUksQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUVyRSxTQUFTRyxtQkFBbUJBLENBQUNDLEdBQVEsRUFBVztFQUM5QyxPQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsSUFBSSxLQUFLQyw4QkFBZ0IsQ0FBQ0MsTUFBTTtBQUNwRDtBQUVBLFNBQVNDLHdCQUF3QkEsQ0FBQ0osR0FBUSxFQUFXO0VBQ25ELE9BQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxJQUFJLEtBQUtDLDhCQUFnQixDQUFDRyxZQUFZO0FBQzFEO0FBRUEsU0FBU0Msa0NBQWtDQSxDQUFDTixHQUFnQixFQUFXO0VBQ3JFLE9BQU9JLHdCQUF3QixDQUFDSixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUNBLEdBQUcsQ0FBQ08sWUFBWSxJQUFJUCxHQUFHLENBQUNPLFlBQVksQ0FBQ0MsTUFBTSxHQUFHLENBQUM7QUFDM0Y7QUFFQSxTQUFTQywrQkFBK0JBLENBQUNULEdBQWdCLEVBQVc7RUFDbEUsT0FBT0ksd0JBQXdCLENBQUNKLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQ0EsR0FBRyxDQUFDTyxZQUFZLElBQUlQLEdBQUcsQ0FBQ08sWUFBWSxDQUFDQyxNQUFNLEtBQUssQ0FBQztBQUM3RjtBQUVPLFNBQVNFLGVBQWVBLENBQUNDLElBQW1CLEVBQWlCO0VBQ2xFLE9BQU9BLElBQUksQ0FBQ0MsR0FBRyxDQUFFWixHQUFnQixJQUFLO0lBQ3BDLE1BQU1hLFNBQVMsR0FBRztNQUFFLEdBQUdiO0lBQUksQ0FBQztJQUU1QixJQUNFSSx3QkFBd0IsQ0FBQ1MsU0FBUyxDQUFDLElBQ25DUCxrQ0FBa0MsQ0FBQ08sU0FBUyxDQUFDLElBQzdDQSxTQUFTLENBQUNOLFlBQVksRUFDdEI7TUFDQSxNQUFNTyxVQUFVLEdBQUcsSUFBQUMsZUFBTSxFQUFDRixTQUFTLENBQUNHLElBQUksQ0FBQztNQUN6QyxNQUFNQyxnQkFBZ0IsR0FBR0gsVUFBVSxDQUFDSSxHQUFHLENBQUNMLFNBQVMsQ0FBQ04sWUFBWSxDQUFDQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQztNQUNuRkssU0FBUyxDQUFDRyxJQUFJLEdBQUdDLGdCQUFnQixDQUFDRSxXQUFXLENBQUMsQ0FBQztJQUNqRDtJQUNBLE9BQU9OLFNBQVM7RUFDbEIsQ0FBQyxDQUFDO0FBQ0o7QUFFTyxTQUFTTyxzQkFBc0JBLENBQUNULElBQW1CLEVBQUU7RUFDMUQsT0FBT1UsZUFBQyxDQUFDQyxNQUFNLENBQUNYLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2pDO0FBRU8sU0FBU1kscUJBQXFCQSxDQUFDWixJQUFtQixFQUFFYSxXQUFtQixFQUFFQyxtQkFBNEIsRUFBRTtFQUM1RyxPQUFPZCxJQUFJLENBQUNlLE1BQU0sQ0FBQzFCLEdBQUcsSUFBSTtJQUN4QixNQUFNMkIsK0JBQStCLEdBQ25DRixtQkFBbUIsS0FBSzFCLG1CQUFtQixDQUFDQyxHQUFHLENBQUMsSUFBSVMsK0JBQStCLENBQUNULEdBQUcsQ0FBQyxDQUFDO0lBQzNGLE9BQ0csQ0FBQ3lCLG1CQUFtQixJQUFJRCxXQUFXLENBQUNJLGNBQWMsQ0FBQzVCLEdBQUcsQ0FBQ2dCLElBQUksQ0FBQyxJQUM1RFcsK0JBQStCLElBQUlILFdBQVcsQ0FBQ0ksY0FBYyxDQUFDNUIsR0FBRyxDQUFDZ0IsSUFBSSxDQUFFO0VBRTdFLENBQUMsQ0FBQztBQUNKIiwiaWdub3JlTGlzdCI6W119