@accounter/server
Version:
33 lines • 1.92 kB
JavaScript
import { TransactionDirection } from '../../../__generated__/types.js';
import { dateToTimelessDateString, formatFinancialAmount } from '../../../shared/helpers/index.js';
import { effectiveDateSupplement } from '../helpers/effective-date.helper.js';
import { TransactionsProvider } from '../providers/transactions.provider.js';
export const commonTransactionFields = {
id: DbTransaction => DbTransaction.id,
referenceId: DbTransaction => DbTransaction.source_id,
referenceKey: DbTransaction => DbTransaction.source_reference,
eventDate: DbTransaction => dateToTimelessDateString(DbTransaction.event_date),
effectiveDate: DbTransaction => effectiveDateSupplement(DbTransaction),
sourceEffectiveDate: DbTransaction => {
const date = DbTransaction.source_debit_date
? dateToTimelessDateString(DbTransaction.source_debit_date)
: null;
if (date && date !== effectiveDateSupplement(DbTransaction)) {
return date;
}
return null;
},
exactEffectiveDate: DbTransaction => DbTransaction.debit_timestamp,
direction: DbTransaction => parseFloat(DbTransaction.amount) > 0 ? TransactionDirection.Credit : TransactionDirection.Debit,
amount: DbTransaction => formatFinancialAmount(DbTransaction.amount, DbTransaction.currency),
sourceDescription: DbTransaction => DbTransaction.source_description ?? '',
balance: DbTransaction => formatFinancialAmount(DbTransaction.current_balance),
createdAt: DbTransaction => DbTransaction.created_at,
updatedAt: DbTransaction => DbTransaction.updated_at,
isFee: DbTransaction => DbTransaction.is_fee,
chargeId: DbTransaction => DbTransaction.charge_id,
};
export const commonChargeFields = {
transactions: (DbCharge, _, { injector }) => injector.get(TransactionsProvider).getTransactionsByChargeIDLoader.load(DbCharge.id),
};
//# sourceMappingURL=common.js.map