Make send-response middleware generic to the router
This commit is contained in:
@@ -6,7 +6,6 @@ const dbConnSetup = require('../middleware/db-conn-setup');
|
||||
const rateLimit = require('../middleware/rate-limit');
|
||||
const { RATE_LIMIT_ENDPOINTS_GROUPS } = rateLimit;
|
||||
const cacheControlHeader = require('../middleware/cache-control-header');
|
||||
const sendResponse = require('../middleware/send-response');
|
||||
const dbParamsFromResLocals = require('../utils/database-params');
|
||||
|
||||
function AnalysesController(pgConnection, authApi, userLimitsApi) {
|
||||
@@ -30,7 +29,6 @@ AnalysesController.prototype.register = function (mapRouter) {
|
||||
getDataFromQuery({ queryTemplate: tablesQueryTpl, key: 'tables' }),
|
||||
prepareResponse(),
|
||||
cacheControlHeader({ ttl: 10, revalidate: true }),
|
||||
sendResponse(),
|
||||
unauthorizedError()
|
||||
);
|
||||
};
|
||||
|
||||
@@ -173,8 +173,8 @@ module.exports = class ControllersFactory {
|
||||
app.layergroupAffectedTablesCache = this.layergroupAffectedTablesCache;
|
||||
}
|
||||
|
||||
this.mapRouter.register(app);
|
||||
this.templateRouter.register(app);
|
||||
this.mapRouter.register(app);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ const dbConnSetup = require('../../middleware/db-conn-setup');
|
||||
const authorize = require('../../middleware/authorize');
|
||||
const rateLimit = require('../../middleware/rate-limit');
|
||||
const { RATE_LIMIT_ENDPOINTS_GROUPS } = rateLimit;
|
||||
const sendResponse = require('../../middleware/send-response');
|
||||
const dbParamsFromResLocals = require('../../utils/database-params');
|
||||
|
||||
module.exports = class AnalysisLayergroupController {
|
||||
@@ -36,8 +35,7 @@ module.exports = class AnalysisLayergroupController {
|
||||
dbConnSetup(this.pgConnection),
|
||||
rateLimit(this.userLimitsApi, RATE_LIMIT_ENDPOINTS_GROUPS.ANALYSIS),
|
||||
cleanUpQueryParams(),
|
||||
analysisNodeStatus(this.analysisStatusBackend),
|
||||
sendResponse()
|
||||
analysisNodeStatus(this.analysisStatusBackend)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@ const cacheControlHeader = require('../../middleware/cache-control-header');
|
||||
const cacheChannelHeader = require('../../middleware/cache-channel-header');
|
||||
const surrogateKeyHeader = require('../../middleware/surrogate-key-header');
|
||||
const lastModifiedHeader = require('../../middleware/last-modified-header');
|
||||
const sendResponse = require('../../middleware/send-response');
|
||||
|
||||
module.exports = class AttributesLayergroupController {
|
||||
constructor (
|
||||
@@ -50,8 +49,7 @@ module.exports = class AttributesLayergroupController {
|
||||
cacheControlHeader(),
|
||||
cacheChannelHeader(),
|
||||
surrogateKeyHeader({ surrogateKeysCache: this.surrogateKeysCache }),
|
||||
lastModifiedHeader(),
|
||||
sendResponse()
|
||||
lastModifiedHeader()
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -10,7 +10,6 @@ const cacheControlHeader = require('../../middleware/cache-control-header');
|
||||
const cacheChannelHeader = require('../../middleware/cache-channel-header');
|
||||
const surrogateKeyHeader = require('../../middleware/surrogate-key-header');
|
||||
const lastModifiedHeader = require('../../middleware/last-modified-header');
|
||||
const sendResponse = require('../../middleware/send-response');
|
||||
|
||||
const ALLOWED_DATAVIEW_QUERY_PARAMS = [
|
||||
'filters', // json
|
||||
@@ -68,8 +67,7 @@ module.exports = class DataviewLayergroupController {
|
||||
cacheControlHeader(),
|
||||
cacheChannelHeader(),
|
||||
surrogateKeyHeader({ surrogateKeysCache: this.surrogateKeysCache }),
|
||||
lastModifiedHeader(),
|
||||
sendResponse()
|
||||
lastModifiedHeader()
|
||||
);
|
||||
|
||||
mapRouter.get(
|
||||
@@ -90,8 +88,7 @@ module.exports = class DataviewLayergroupController {
|
||||
cacheControlHeader(),
|
||||
cacheChannelHeader(),
|
||||
surrogateKeyHeader({ surrogateKeysCache: this.surrogateKeysCache }),
|
||||
lastModifiedHeader(),
|
||||
sendResponse()
|
||||
lastModifiedHeader()
|
||||
);
|
||||
|
||||
mapRouter.get(
|
||||
@@ -112,8 +109,7 @@ module.exports = class DataviewLayergroupController {
|
||||
cacheControlHeader(),
|
||||
cacheChannelHeader(),
|
||||
surrogateKeyHeader({ surrogateKeysCache: this.surrogateKeysCache }),
|
||||
lastModifiedHeader(),
|
||||
sendResponse()
|
||||
lastModifiedHeader()
|
||||
);
|
||||
|
||||
mapRouter.get(
|
||||
@@ -134,8 +130,7 @@ module.exports = class DataviewLayergroupController {
|
||||
cacheControlHeader(),
|
||||
cacheChannelHeader(),
|
||||
surrogateKeyHeader({ surrogateKeysCache: this.surrogateKeysCache }),
|
||||
lastModifiedHeader(),
|
||||
sendResponse()
|
||||
lastModifiedHeader()
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -10,7 +10,6 @@ const cacheControlHeader = require('../../middleware/cache-control-header');
|
||||
const cacheChannelHeader = require('../../middleware/cache-channel-header');
|
||||
const surrogateKeyHeader = require('../../middleware/surrogate-key-header');
|
||||
const lastModifiedHeader = require('../../middleware/last-modified-header');
|
||||
const sendResponse = require('../../middleware/send-response');
|
||||
|
||||
module.exports = class PreviewLayergroupController {
|
||||
constructor (
|
||||
@@ -53,8 +52,7 @@ module.exports = class PreviewLayergroupController {
|
||||
cacheControlHeader(),
|
||||
cacheChannelHeader(),
|
||||
surrogateKeyHeader({ surrogateKeysCache: this.surrogateKeysCache }),
|
||||
lastModifiedHeader(),
|
||||
sendResponse()
|
||||
lastModifiedHeader()
|
||||
);
|
||||
|
||||
mapRouter.get(
|
||||
@@ -76,8 +74,7 @@ module.exports = class PreviewLayergroupController {
|
||||
cacheControlHeader(),
|
||||
cacheChannelHeader(),
|
||||
surrogateKeyHeader({ surrogateKeysCache: this.surrogateKeysCache }),
|
||||
lastModifiedHeader(),
|
||||
sendResponse()
|
||||
lastModifiedHeader()
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -10,7 +10,6 @@ const cacheControlHeader = require('../../middleware/cache-control-header');
|
||||
const cacheChannelHeader = require('../../middleware/cache-channel-header');
|
||||
const surrogateKeyHeader = require('../../middleware/surrogate-key-header');
|
||||
const lastModifiedHeader = require('../../middleware/last-modified-header');
|
||||
const sendResponse = require('../../middleware/send-response');
|
||||
const vectorError = require('../../middleware/vector-error');
|
||||
|
||||
const SUPPORTED_FORMATS = {
|
||||
@@ -42,8 +41,10 @@ module.exports = class TileLayergroupController {
|
||||
}
|
||||
|
||||
register (mapRouter) {
|
||||
const number = (param) => `${param}(-?\\d+)`;
|
||||
|
||||
mapRouter.get(
|
||||
`/:token/:z/:x/:y@:scale_factor?x.:format`,
|
||||
`/:token/:${number('z')}/:${number('x')}/:${number('y')}@:${number('scale_factor')}?x.:format`,
|
||||
layergroupToken(),
|
||||
credentials(),
|
||||
authorize(this.authApi),
|
||||
@@ -64,12 +65,11 @@ module.exports = class TileLayergroupController {
|
||||
incrementSuccessMetrics(global.statsClient),
|
||||
incrementErrorMetrics(global.statsClient),
|
||||
tileError(),
|
||||
vectorError(),
|
||||
sendResponse()
|
||||
vectorError()
|
||||
);
|
||||
|
||||
mapRouter.get(
|
||||
`/:token/:z/:x/:y.:format`,
|
||||
`/:token/:${number('z')}/:${number('x')}/:${number('y')}.:format`,
|
||||
layergroupToken(),
|
||||
credentials(),
|
||||
authorize(this.authApi),
|
||||
@@ -90,12 +90,11 @@ module.exports = class TileLayergroupController {
|
||||
incrementSuccessMetrics(global.statsClient),
|
||||
incrementErrorMetrics(global.statsClient),
|
||||
tileError(),
|
||||
vectorError(),
|
||||
sendResponse()
|
||||
vectorError()
|
||||
);
|
||||
|
||||
mapRouter.get(
|
||||
`/:token/:layer/:z/:x/:y.(:format)`,
|
||||
`/:token/:layer/:${number('z')}/:${number('x')}/:${number('y')}.(:format)`,
|
||||
distinguishLayergroupFromStaticRoute(),
|
||||
layergroupToken(),
|
||||
credentials(),
|
||||
@@ -117,8 +116,7 @@ module.exports = class TileLayergroupController {
|
||||
incrementSuccessMetrics(global.statsClient),
|
||||
incrementErrorMetrics(global.statsClient),
|
||||
tileError(),
|
||||
vectorError(),
|
||||
sendResponse()
|
||||
vectorError()
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -7,6 +7,7 @@ const stats = require('../middleware/stats');
|
||||
const lzmaMiddleware = require('../middleware/lzma');
|
||||
const cors = require('../middleware/cors');
|
||||
const user = require('../middleware/user');
|
||||
const sendResponse = require('../middleware/send-response');
|
||||
const syntaxError = require('../middleware/syntax-error');
|
||||
const errorMiddleware = require('../middleware/error-middleware');
|
||||
|
||||
@@ -152,6 +153,7 @@ module.exports = class MapRouter {
|
||||
this.previewTemplateController.register(mapRouter);
|
||||
this.analysesController.register(mapRouter);
|
||||
|
||||
mapRouter.use(sendResponse());
|
||||
mapRouter.use(syntaxError());
|
||||
mapRouter.use(errorMiddleware());
|
||||
|
||||
|
||||
@@ -18,7 +18,6 @@ const layerStats = require('./middlewares/layer-stats');
|
||||
const layergroupIdHeader = require('./middlewares/layergroup-id-header');
|
||||
const layergroupMetadata = require('./middlewares/layergroup-metadata');
|
||||
const mapError = require('./middlewares/map-error');
|
||||
const sendResponse = require('../../middleware/send-response');
|
||||
const CreateLayergroupMapConfigProvider = require('../../models/mapconfig/provider/create-layergroup-provider');
|
||||
const rateLimit = require('../../middleware/rate-limit');
|
||||
const { RATE_LIMIT_ENDPOINTS_GROUPS } = rateLimit;
|
||||
@@ -103,7 +102,6 @@ AnonymousMapController.prototype.composeCreateMapMiddleware = function () {
|
||||
layerStats(this.pgConnection, this.statsBackend),
|
||||
layergroupIdHeader(this.templateMaps, useTemplateHash),
|
||||
layergroupMetadata(this.layergroupMetadata, includeQuery),
|
||||
sendResponse(),
|
||||
mapError({ label, addContext })
|
||||
];
|
||||
};
|
||||
|
||||
@@ -15,7 +15,6 @@ const layerStats = require('./middlewares/layer-stats');
|
||||
const layergroupIdHeader = require('./middlewares/layergroup-id-header');
|
||||
const layergroupMetadata = require('./middlewares/layergroup-metadata');
|
||||
const mapError = require('./middlewares/map-error');
|
||||
const sendResponse = require('../../middleware/send-response');
|
||||
const NamedMapMapConfigProvider = require('../../models/mapconfig/provider/named-map-provider');
|
||||
const CreateLayergroupMapConfigProvider = require('../../models/mapconfig/provider/create-layergroup-provider');
|
||||
const rateLimit = require('../../middleware/rate-limit');
|
||||
@@ -114,7 +113,6 @@ NamedMapController.prototype.composeInstantiateTemplateMiddleware = function ()
|
||||
layerStats(this.pgConnection, this.statsBackend),
|
||||
layergroupIdHeader(this.templateMaps ,useTemplateHash),
|
||||
layergroupMetadata(this.layergroupMetadata, includeQuery),
|
||||
sendResponse(),
|
||||
mapError({ label, addContext })
|
||||
];
|
||||
};
|
||||
|
||||
@@ -7,6 +7,7 @@ const stats = require('../middleware/stats');
|
||||
const lzmaMiddleware = require('../middleware/lzma');
|
||||
const cors = require('../middleware/cors');
|
||||
const user = require('../middleware/user');
|
||||
const sendResponse = require('../middleware/send-response');
|
||||
const syntaxError = require('../middleware/syntax-error');
|
||||
const errorMiddleware = require('../middleware/error-middleware');
|
||||
|
||||
@@ -84,6 +85,7 @@ module.exports = class TemplateRouter {
|
||||
this.tileTemplateController.register(templateRouter);
|
||||
this.adminTemplateController.register(templateRouter);
|
||||
|
||||
templateRouter.use(sendResponse());
|
||||
templateRouter.use(syntaxError());
|
||||
templateRouter.use(errorMiddleware());
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ const { templateName } = require('../../backends/template_maps');
|
||||
const credentials = require('../../middleware/credentials');
|
||||
const rateLimit = require('../../middleware/rate-limit');
|
||||
const { RATE_LIMIT_ENDPOINTS_GROUPS } = rateLimit;
|
||||
const sendResponse = require('../../middleware/send-response');
|
||||
|
||||
/**
|
||||
* @param {AuthApi} authApi
|
||||
@@ -27,8 +26,7 @@ AdminTemplateController.prototype.register = function (templateRouter) {
|
||||
authorizedByAPIKey({ authApi: this.authApi, action: 'create', label: 'POST TEMPLATE' }),
|
||||
rateLimit(this.userLimitsApi, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED_CREATE),
|
||||
checkContentType({ action: 'POST', label: 'POST TEMPLATE' }),
|
||||
createTemplate({ templateMaps: this.templateMaps }),
|
||||
sendResponse()
|
||||
createTemplate({ templateMaps: this.templateMaps })
|
||||
);
|
||||
|
||||
templateRouter.put(
|
||||
@@ -37,8 +35,7 @@ AdminTemplateController.prototype.register = function (templateRouter) {
|
||||
authorizedByAPIKey({ authApi: this.authApi, action: 'update', label: 'PUT TEMPLATE' }),
|
||||
rateLimit(this.userLimitsApi, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED_UPDATE),
|
||||
checkContentType({ action: 'PUT', label: 'PUT TEMPLATE' }),
|
||||
updateTemplate({ templateMaps: this.templateMaps }),
|
||||
sendResponse()
|
||||
updateTemplate({ templateMaps: this.templateMaps })
|
||||
);
|
||||
|
||||
templateRouter.get(
|
||||
@@ -46,8 +43,7 @@ AdminTemplateController.prototype.register = function (templateRouter) {
|
||||
credentials(),
|
||||
authorizedByAPIKey({ authApi: this.authApi, action: 'get', label: 'GET TEMPLATE' }),
|
||||
rateLimit(this.userLimitsApi, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED_GET),
|
||||
retrieveTemplate({ templateMaps: this.templateMaps }),
|
||||
sendResponse()
|
||||
retrieveTemplate({ templateMaps: this.templateMaps })
|
||||
);
|
||||
|
||||
templateRouter.delete(
|
||||
@@ -55,8 +51,7 @@ AdminTemplateController.prototype.register = function (templateRouter) {
|
||||
credentials(),
|
||||
authorizedByAPIKey({ authApi: this.authApi, action: 'delete', label: 'DELETE TEMPLATE' }),
|
||||
rateLimit(this.userLimitsApi, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED_DELETE),
|
||||
destroyTemplate({ templateMaps: this.templateMaps }),
|
||||
sendResponse()
|
||||
destroyTemplate({ templateMaps: this.templateMaps })
|
||||
);
|
||||
|
||||
templateRouter.get(
|
||||
@@ -64,8 +59,7 @@ AdminTemplateController.prototype.register = function (templateRouter) {
|
||||
credentials(),
|
||||
authorizedByAPIKey({ authApi: this.authApi, action: 'list', label: 'GET TEMPLATE LIST' }),
|
||||
rateLimit(this.userLimitsApi, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED_LIST),
|
||||
listTemplates({ templateMaps: this.templateMaps }),
|
||||
sendResponse()
|
||||
listTemplates({ templateMaps: this.templateMaps })
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ const cacheControlHeader = require('../../middleware/cache-control-header');
|
||||
const cacheChannelHeader = require('../../middleware/cache-channel-header');
|
||||
const surrogateKeyHeader = require('../../middleware/surrogate-key-header');
|
||||
const lastModifiedHeader = require('../../middleware/last-modified-header');
|
||||
const sendResponse = require('../../middleware/send-response');
|
||||
const rateLimit = require('../../middleware/rate-limit');
|
||||
const { RATE_LIMIT_ENDPOINTS_GROUPS } = rateLimit;
|
||||
|
||||
@@ -69,8 +68,7 @@ PreviewTemplateController.prototype.register = function (mapRouter) {
|
||||
cacheControlHeader(),
|
||||
cacheChannelHeader(),
|
||||
surrogateKeyHeader({ surrogateKeysCache: this.surrogateKeysCache }),
|
||||
lastModifiedHeader(),
|
||||
sendResponse()
|
||||
lastModifiedHeader()
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ const cacheControlHeader = require('../../middleware/cache-control-header');
|
||||
const cacheChannelHeader = require('../../middleware/cache-channel-header');
|
||||
const surrogateKeyHeader = require('../../middleware/surrogate-key-header');
|
||||
const lastModifiedHeader = require('../../middleware/last-modified-header');
|
||||
const sendResponse = require('../../middleware/send-response');
|
||||
const vectorError = require('../../middleware/vector-error');
|
||||
const rateLimit = require('../../middleware/rate-limit');
|
||||
const { RATE_LIMIT_ENDPOINTS_GROUPS } = rateLimit;
|
||||
@@ -51,7 +50,6 @@ TileTemplateController.prototype.register = function (templateRouter) {
|
||||
cacheChannelHeader(),
|
||||
surrogateKeyHeader({ surrogateKeysCache: this.surrogateKeysCache }),
|
||||
lastModifiedHeader(),
|
||||
sendResponse(),
|
||||
vectorError()
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user