41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
const MapStoreMapConfigProvider = require('../../models/mapconfig/provider/map-store-provider');
|
|
|
|
module.exports = function createMapStoreMapConfigProvider (
|
|
mapStore,
|
|
userLimitsBackend,
|
|
pgConnection,
|
|
affectedTablesCache,
|
|
forcedFormat = null
|
|
) {
|
|
return function createMapStoreMapConfigProviderMiddleware (req, res, next) {
|
|
const { user, token, cache_buster, api_key } = res.locals;
|
|
const { dbuser, dbname, dbpassword, dbhost, dbport } = res.locals;
|
|
const { layer: layerFromParams, z, x, y, scale_factor, format } = req.params;
|
|
const { layer: layerFromQuery } = req.query;
|
|
|
|
const params = {
|
|
user, token, cache_buster, api_key,
|
|
dbuser, dbname, dbpassword, dbhost, dbport,
|
|
layer: (layerFromQuery || layerFromParams), z, x, y, scale_factor, format
|
|
};
|
|
|
|
if (forcedFormat) {
|
|
params.format = forcedFormat;
|
|
params.layer = params.layer || 'all';
|
|
}
|
|
|
|
res.locals.mapConfigProvider = new MapStoreMapConfigProvider(
|
|
mapStore,
|
|
user,
|
|
userLimitsBackend,
|
|
pgConnection,
|
|
affectedTablesCache,
|
|
params
|
|
);
|
|
|
|
next();
|
|
};
|
|
};
|