Prevent queryParams from reaching handle() when no schema is defined (#3171)

I believe I’ve added all the schemas to the new-style services in #3164, so this should be purely preventive.
This commit is contained in:
Paul Melnikow
2019-03-06 21:26:09 -05:00
committed by GitHub
parent f5306f2df4
commit a12cbb76fc

View File

@@ -276,9 +276,10 @@ module.exports = class BaseService {
let serviceError
const { queryParamSchema } = this.route
let transformedQueryParams
if (queryParamSchema) {
try {
queryParams = validate(
transformedQueryParams = validate(
{
ErrorClass: InvalidParameter,
prettyErrorMessage: 'invalid query parameter',
@@ -298,12 +299,17 @@ module.exports = class BaseService {
} catch (error) {
serviceError = error
}
} else {
transformedQueryParams = {}
}
let serviceData
if (!serviceError) {
try {
serviceData = await serviceInstance.handle(namedParams, queryParams)
serviceData = await serviceInstance.handle(
namedParams,
transformedQueryParams
)
Joi.assert(serviceData, serviceDataSchema)
} catch (error) {
serviceError = error