UNPKG

@accounter/server

Version:

60 lines 2.04 kB
import { __decorate, __metadata } from "tslib"; import DataLoader from 'dataloader'; import { Injectable, Scope } from 'graphql-modules'; import { DBProvider } from '../../app-providers/db.provider.js'; import { sql } from '@pgtyped/runtime'; const getFeeTransactionsByIds = sql ` SELECT * FROM accounter_schema.transactions_fees WHERE id IN $$transactionIds;`; const updateFeeTransaction = sql ` UPDATE accounter_schema.transactions_fees SET is_recurring = COALESCE( $isRecurring, is_recurring, NULL ) WHERE id = $transactionId RETURNING *; `; const addFeeTransaction = sql ` INSERT INTO accounter_schema.transactions_fees (id, is_recurring) VALUES $$feeTransactions(id, isRecurring) ON CONFLICT DO NOTHING RETURNING *;`; const deleteFeeTransactionsByIds = sql ` DELETE FROM accounter_schema.transactions_fees WHERE id IN $$transactionIds;`; let FeeTransactionsProvider = class FeeTransactionsProvider { dbProvider; constructor(dbProvider) { this.dbProvider = dbProvider; } async batchFeeTransactionsByIds(ids) { const transactions = await getFeeTransactionsByIds.run({ transactionIds: ids, }, this.dbProvider); return ids.map(id => transactions.find(charge => charge.id === id)); } getFeeTransactionByIdLoader = new DataLoader((keys) => this.batchFeeTransactionsByIds(keys), { cache: false }); updateFeeTransaction(params) { return updateFeeTransaction.run(params, this.dbProvider); } addFeeTransaction(params) { return addFeeTransaction.run(params, this.dbProvider); } deleteFeeTransactionsByIds(params) { return deleteFeeTransactionsByIds.run(params, this.dbProvider); } }; FeeTransactionsProvider = __decorate([ Injectable({ scope: Scope.Singleton, global: true, }), __metadata("design:paramtypes", [DBProvider]) ], FeeTransactionsProvider); export { FeeTransactionsProvider }; //# sourceMappingURL=fee-transactions.provider.js.map