UNPKG

@accounter/server

Version:

The test suite is split into three Vitest projects for efficiency and isolation:

79 lines 2.6 kB
import { __decorate, __metadata } from "tslib"; import DataLoader from 'dataloader'; import { Injectable, Scope } from 'graphql-modules'; import { sql } from '@pgtyped/runtime'; import { DBProvider } from '../../app-providers/db.provider.js'; const getChargesSpreadByChargeIds = sql ` SELECT * FROM accounter_schema.charge_spread WHERE charge_id IN $$chargeIds;`; const updateChargeSpread = sql ` WITH variables (year) as ( values ($year::DATE) ) UPDATE accounter_schema.charge_spread SET year_of_relevance = COALESCE( variables.year, year_of_relevance ), amount = COALESCE( $amount, amount ) FROM variables WHERE charge_id = $chargeId AND year_of_relevance = variables.year RETURNING *; `; const insertChargeSpread = sql ` INSERT INTO accounter_schema.charge_spread (charge_id, year_of_relevance, amount) VALUES $$chargeSpread( chargeId, yearOfRelevance, amount ) RETURNING *; `; const deleteAllChargeSpreadByChargeIds = sql ` DELETE FROM accounter_schema.charge_spread WHERE charge_id IN $$chargeIds;`; const deleteAllChargeSpreadByChargeIdAndYearOfRelevance = sql ` DELETE FROM accounter_schema.charge_spread WHERE charge_id = $chargeId AND year_of_relevance = $yearOfRelevance;`; let ChargeSpreadProvider = class ChargeSpreadProvider { dbProvider; constructor(dbProvider) { this.dbProvider = dbProvider; } async batchChargesSpreadByChargeIds(ids) { const charges = await getChargesSpreadByChargeIds.run({ chargeIds: ids, }, this.dbProvider); return ids.map(id => charges.filter(chargeSpread => chargeSpread.charge_id === id)); } getChargeSpreadByChargeIdLoader = new DataLoader((keys) => this.batchChargesSpreadByChargeIds(keys), { cache: false }); updateChargeSpread(params) { return updateChargeSpread.run(params, this.dbProvider); } insertChargeSpread(params) { return insertChargeSpread.run(params, this.dbProvider); } deleteAllChargeSpreadByChargeIds(params) { return deleteAllChargeSpreadByChargeIds.run(params, this.dbProvider); } deleteAllChargeSpreadByChargeIdAndYearOfRelevance(params) { return deleteAllChargeSpreadByChargeIdAndYearOfRelevance.run(params, this.dbProvider); } }; ChargeSpreadProvider = __decorate([ Injectable({ scope: Scope.Singleton, global: true, }), __metadata("design:paramtypes", [DBProvider]) ], ChargeSpreadProvider); export { ChargeSpreadProvider }; //# sourceMappingURL=charge-spread.provider.js.map