Use ES6 class syntax

This commit is contained in:
Daniel García Aubert 2019-09-13 18:07:50 +02:00
parent b55c2ec55c
commit 329b5d9b9e

View File

@ -8,58 +8,58 @@ const { templateName } = require('../backends/template_maps');
const TEN_MINUTES_IN_MILLISECONDS = 1000 * 60 * 10;
const ACTIONS = ['update', 'delete'];
function NamedMapProviderCache(
templateMaps,
pgConnection,
metadataBackend,
userLimitsBackend,
mapConfigAdapter,
affectedTablesCache
) {
this.templateMaps = templateMaps;
this.pgConnection = pgConnection;
this.metadataBackend = metadataBackend;
this.userLimitsBackend = userLimitsBackend;
this.mapConfigAdapter = mapConfigAdapter;
this.affectedTablesCache = affectedTablesCache;
module.exports = class NamedMapProviderCache {
constructor (
templateMaps,
pgConnection,
metadataBackend,
userLimitsBackend,
mapConfigAdapter,
affectedTablesCache
) {
this.templateMaps = templateMaps;
this.pgConnection = pgConnection;
this.metadataBackend = metadataBackend;
this.userLimitsBackend = userLimitsBackend;
this.mapConfigAdapter = mapConfigAdapter;
this.affectedTablesCache = affectedTablesCache;
this.providerCache = new LruCache({ max: 2000, maxAge: TEN_MINUTES_IN_MILLISECONDS });
this.providerCache = new LruCache({ max: 2000, maxAge: TEN_MINUTES_IN_MILLISECONDS });
ACTIONS.forEach(action => templateMaps.on(action, (...args) => this.invalidate(...args)));
}
ACTIONS.forEach(action => templateMaps.on(action, (...args) => this.invalidate(...args)));
}
module.exports = NamedMapProviderCache;
get (user, templateId, config, authToken, params, callback) {
const namedMapKey = createNamedMapKey(user, templateId);
const namedMapProviders = this.providerCache.get(namedMapKey) || {};
const providerKey = createProviderKey(config, authToken, params);
NamedMapProviderCache.prototype.get = function(user, templateId, config, authToken, params, callback) {
const namedMapKey = createNamedMapKey(user, templateId);
const namedMapProviders = this.providerCache.get(namedMapKey) || {};
const providerKey = createProviderKey(config, authToken, params);
if (namedMapProviders.hasOwnProperty(providerKey)) {
return callback(null, namedMapProviders[providerKey]);
}
namedMapProviders[providerKey] = new NamedMapMapConfigProvider(
this.templateMaps,
this.pgConnection,
this.metadataBackend,
this.userLimitsBackend,
this.mapConfigAdapter,
this.affectedTablesCache,
user,
templateId,
config,
authToken,
params
);
this.providerCache.set(namedMapKey, namedMapProviders);
if (namedMapProviders.hasOwnProperty(providerKey)) {
return callback(null, namedMapProviders[providerKey]);
}
namedMapProviders[providerKey] = new NamedMapMapConfigProvider(
this.templateMaps,
this.pgConnection,
this.metadataBackend,
this.userLimitsBackend,
this.mapConfigAdapter,
this.affectedTablesCache,
user,
templateId,
config,
authToken,
params
);
this.providerCache.set(namedMapKey, namedMapProviders);
return callback(null, namedMapProviders[providerKey]);
};
NamedMapProviderCache.prototype.invalidate = function(user, templateId) {
this.providerCache.del(createNamedMapKey(user, templateId));
invalidate (user, templateId) {
this.providerCache.del(createNamedMapKey(user, templateId));
}
};
function createNamedMapKey (user, templateId) {