Makes cache async

This commit is contained in:
Raul Ochoa
2015-09-23 14:32:26 +02:00
parent 807455eb3d
commit 84bf375f72
2 changed files with 19 additions and 8 deletions
+2 -2
View File
@@ -16,7 +16,7 @@ function NamedMapProviderCache(templateMaps, pgConnection, userLimitsApi, queryT
module.exports = NamedMapProviderCache;
NamedMapProviderCache.prototype.get = function(user, templateId, config, authToken, params) {
NamedMapProviderCache.prototype.get = function(user, templateId, config, authToken, params, callback) {
var namedMapKey = createNamedMapKey(user, templateId);
var namedMapProviders = this.providerCache.get(namedMapKey) || {};
@@ -36,7 +36,7 @@ NamedMapProviderCache.prototype.get = function(user, templateId, config, authTok
this.providerCache.set(namedMapKey, namedMapProviders);
}
return namedMapProviders[providerKey];
return callback(null, namedMapProviders[providerKey]);
};
NamedMapProviderCache.prototype.invalidate = function(user, templateId) {
+17 -6
View File
@@ -83,14 +83,20 @@ NamedMapsController.prototype.tile = function(req, res) {
function reqParams() {
self.req2params(req, this);
},
function getTile() {
namedMapProvider = self.namedMapProviderCache.get(
function getNamedMapProvider(err) {
assert.ifError(err);
self.namedMapProviderCache.get(
cdbUser,
req.params.template_id,
req.query.config,
req.query.auth_token,
req.params
req.params,
this
);
},
function getTile(err, _namedMapProvider) {
assert.ifError(err);
namedMapProvider = _namedMapProvider;
self.tileBackend.getTile(namedMapProvider, req.params, this);
},
function handleImage(err, tile, headers, stats) {
@@ -120,15 +126,20 @@ NamedMapsController.prototype.staticMap = function(req, res) {
function reqParams() {
self.req2params(req, this);
},
function prepareImageOptions(err) {
function getNamedMapProvider(err) {
assert.ifError(err);
namedMapProvider = self.namedMapProviderCache.get(
self.namedMapProviderCache.get(
cdbUser,
req.params.template_id,
req.query.config,
req.query.auth_token,
req.params
req.params,
this
);
},
function prepareImageOptions(err, _namedMapProvider) {
assert.ifError(err);
namedMapProvider = _namedMapProvider;
self.getStaticImageOptions(cdbUser, namedMapProvider, this);
},
function getImage(err, imageOpts) {