Move incrementMapViews to a middlewares
This commit is contained in:
parent
731fe4c00f
commit
f13b45862d
@ -42,7 +42,8 @@ NamedMapsController.prototype.register = function(app) {
|
|||||||
this.prepareLayerFilterFromPreviewLayers(),
|
this.prepareLayerFilterFromPreviewLayers(),
|
||||||
this.getStaticImageOptions(),
|
this.getStaticImageOptions(),
|
||||||
this.getImage(),
|
this.getImage(),
|
||||||
this.staticMap.bind(this)
|
this.incrementMapViews(),
|
||||||
|
this.handleImage()
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -163,39 +164,6 @@ NamedMapsController.prototype.tile = function(req, res, next) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
NamedMapsController.prototype.staticMap = function(req, res, next) {
|
|
||||||
var self = this;
|
|
||||||
|
|
||||||
var cdbUser = res.locals.user;
|
|
||||||
|
|
||||||
const { namedMapProvider, image, headers, stats } = res.locals;
|
|
||||||
|
|
||||||
step(
|
|
||||||
function incrementMapViews() {
|
|
||||||
var next = this;
|
|
||||||
namedMapProvider.getMapConfig(function(mapConfigErr, mapConfig) {
|
|
||||||
self.metadataBackend.incMapviewCount(cdbUser, mapConfig.obj().stat_tag, function(sErr) {
|
|
||||||
if (sErr) {
|
|
||||||
global.logger.log("ERROR: failed to increment mapview count for user '%s': %s", cdbUser, sErr);
|
|
||||||
}
|
|
||||||
|
|
||||||
next(null, image, headers, stats);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
function handleImage(err, image, headers, stats) {
|
|
||||||
req.profiler.done('render-' + res.locals.format);
|
|
||||||
req.profiler.add(stats || {});
|
|
||||||
|
|
||||||
if (err) {
|
|
||||||
err.label = 'STATIC_VIZ_MAP';
|
|
||||||
next(err);
|
|
||||||
} else {
|
|
||||||
self.sendResponse(req, res, image, headers, namedMapProvider);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
var DEFAULT_ZOOM_CENTER = {
|
var DEFAULT_ZOOM_CENTER = {
|
||||||
zoom: 1,
|
zoom: 1,
|
||||||
@ -343,6 +311,42 @@ NamedMapsController.prototype.getImage = function () {
|
|||||||
}.bind(this);
|
}.bind(this);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const incrementMapViewsError = ctx => `ERROR: failed to increment mapview count for user '${ctx.user}': ${ctx.err}`;
|
||||||
|
|
||||||
|
NamedMapsController.prototype.incrementMapViews = function () {
|
||||||
|
return function incrementMapViewsMiddleware(req, res, next) {
|
||||||
|
const { user, namedMapProvider } = res.locals;
|
||||||
|
|
||||||
|
namedMapProvider.getMapConfig((err, mapConfig) => {
|
||||||
|
if (err) {
|
||||||
|
global.logger.log(incrementMapViewsError({ user, err }));
|
||||||
|
return next();
|
||||||
|
}
|
||||||
|
|
||||||
|
const statTag = mapConfig.obj().stat_tag;
|
||||||
|
|
||||||
|
this.metadataBackend.incMapviewCount(user, statTag, (err) => {
|
||||||
|
if (err) {
|
||||||
|
global.logger.log(incrementMapViewsError({ user, err }));
|
||||||
|
}
|
||||||
|
|
||||||
|
next();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}.bind(this);
|
||||||
|
};
|
||||||
|
|
||||||
|
NamedMapsController.prototype.handleImage = function () {
|
||||||
|
return function handleImageMiddleware (req, res) {
|
||||||
|
const { namedMapProvider, image, headers, stats = {}, format } = res.locals;
|
||||||
|
|
||||||
|
req.profiler.done('render-' + format);
|
||||||
|
req.profiler.add(stats);
|
||||||
|
|
||||||
|
this.sendResponse(req, res, image, headers, namedMapProvider);
|
||||||
|
}.bind(this);
|
||||||
|
};
|
||||||
|
|
||||||
function templateZoomCenter(view) {
|
function templateZoomCenter(view) {
|
||||||
if (!_.isUndefined(view.zoom) && view.center) {
|
if (!_.isUndefined(view.zoom) && view.center) {
|
||||||
return {
|
return {
|
||||||
|
Loading…
Reference in New Issue
Block a user