@accounter/server
Version:
45 lines • 1.46 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Injectable, Scope } from 'graphql-modules';
import { DBProvider } from '../../app-providers/db.provider.js';
import { sql } from '@pgtyped/runtime';
import { getCacheInstance } from '../../../shared/helpers/index.js';
const getAllOpenContracts = sql `
SELECT *
FROM accounter_schema.clients_contracts
WHERE is_active IS TRUE;`;
let ContractsProvider = class ContractsProvider {
dbProvider;
cache = getCacheInstance({
stdTTL: 60 * 60, // 1 hours
});
constructor(dbProvider) {
this.dbProvider = dbProvider;
}
getAllOpenContracts() {
const cached = this.cache.get('all-contracts');
if (cached) {
return Promise.resolve(cached);
}
return getAllOpenContracts.run(undefined, this.dbProvider).then(contracts => {
if (contracts) {
this.cache.set('all-contracts', contracts);
contracts.map(contract => {
this.cache.set(`contract-${contract.id}`, contract);
});
}
return contracts;
});
}
clearCache() {
this.cache.clear();
}
};
ContractsProvider = __decorate([
Injectable({
scope: Scope.Singleton,
global: true,
}),
__metadata("design:paramtypes", [DBProvider])
], ContractsProvider);
export { ContractsProvider };
//# sourceMappingURL=contracts.provider.js.map