Description
The POST handlers in the route files use an unconventional pattern of passing the res object directly to next() as the error argument:
res.statusMessage = 'Improper request method for updating, please use PATCH to add new keys to this object.'
res.status(405)
next(res)
This works because rest.messenger reads err.statusMessage and err.statusCode from whatever object is passed, and the res object happens to have those properties. However, it creates a confusing situation where err === res inside the error handler.
The rest of the codebase uses next(utils.createExpressError({...})) for error handling (see rest.js), which is the standard Express convention.
Standardize these routes to use the same createExpressError pattern as the rest of the codebase:
if (!rest.checkPatchOverrideSupport(req, res)) {
return next(utils.createExpressError({
statusCode: 405,
statusMessage: 'Improper request method for updating, please use PATCH to add new keys to this object.'
}))
}
controller.patchSet(req, res, next)
Context
Found during static review of #206. Out of scope for that PR since it's a pre-existing pattern.
Description
The POST handlers in the route files use an unconventional pattern of passing the
resobject directly tonext()as the error argument:This works because
rest.messengerreadserr.statusMessageanderr.statusCodefrom whatever object is passed, and theresobject happens to have those properties. However, it creates a confusing situation whereerr === resinside the error handler.The rest of the codebase uses
next(utils.createExpressError({...}))for error handling (seerest.js), which is the standard Express convention.Standardize these routes to use the same
createExpressErrorpattern as the rest of the codebase:Context
Found during static review of #206. Out of scope for that PR since it's a pre-existing pattern.