fix: fix reading url path as parameters

This commit is contained in:
Anselm Stordeur
2019-01-22 11:52:04 +01:00
committed by Rainer Killinger
parent 30082f8726
commit 9b889c8736

View File

@@ -48,14 +48,14 @@ export function createRoute<RETURNTYPE>(
// get route parameters (path parameters) // get route parameters (path parameters)
if (Array.isArray(routeClass.obligatoryParameters) && routeClass.obligatoryParameters.length > 0) { if (Array.isArray(routeClass.obligatoryParameters) && routeClass.obligatoryParameters.length > 0) {
routeClass.obligatoryParameters.forEach((parameterName) => { routeClass.obligatoryParameters.forEach((parameterName) => {
router.param(parameterName, async (_req, _res, next, _parameterValue: string) => { router.param(parameterName, async (req, _res, next, parameterValue: string) => {
// if (typeof req.params === 'undefined') { if (typeof req.params === 'undefined') {
// req.params = {}; req.params = {};
// } }
// set parameter values on request object // set parameter values on request object
// req.params[parameterName] = parameterValue; req.params[parameterName] = parameterValue;
// hand over the request to the next handler (our method route handler) // hand over the request to the next handler (our method route handler)
next(); next();
}); });
@@ -87,18 +87,8 @@ export function createRoute<RETURNTYPE>(
return; return;
} }
const params: { [parameterName: string]: string } = {};
if (Array.isArray(routeClass.obligatoryParameters) && routeClass.obligatoryParameters) {
// copy over parameter values from request object
// the parameter values were set in the parameter handler of the route
routeClass.obligatoryParameters.forEach((parameterName) => {
params[parameterName] = req.params[parameterName];
});
}
// hand over request to handler with path parameters // hand over request to handler with path parameters
const response = await handler(req.body, req.app, params); const response = await handler(req.body, req.app, req.params);
// validate response generated by handler // validate response generated by handler
const responseValidation = validator.validate(response, routeClass.responseBodyName); const responseValidation = validator.validate(response, routeClass.responseBodyName);