UNPKG

@accounter/server

Version:

45 lines 1.46 kB
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