Make send-response middleware generic to the router

This commit is contained in:
Daniel García Aubert
2018-04-04 19:15:51 +02:00
parent cfdff61d08
commit ef22c46199
14 changed files with 27 additions and 53 deletions
-2
View File
@@ -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()
);
};
+1 -1
View File
@@ -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()
);
}
};
+8 -10
View File
@@ -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()
);
}
};
+2
View File
@@ -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());
-2
View File
@@ -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 })
];
};
-2
View File
@@ -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());
+5 -11
View File
@@ -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 })
);
};
+1 -3
View File
@@ -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()
);
};
-2
View File
@@ -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()
);
};