From cb109dd835ec358bfb1af10fe8f82aa283ffbafe Mon Sep 17 00:00:00 2001 From: Mariusz Nowak Date: Fri, 27 Aug 2021 10:44:12 +0200 Subject: [PATCH] fix(AWS API Gateway): Fix request validator triage --- .../compile/events/apiGateway/lib/requestValidator.js | 5 ++++- .../programmatic/requestParameters/serverless.yml | 8 ++++++++ .../events/apiGateway/lib/requestValidator.test.js | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.js b/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.js index 05edee18b..e9497ec8c 100644 --- a/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.js +++ b/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.js @@ -21,7 +21,10 @@ module.exports = { event.http.request && event.http.request.parameters && // check if any parameters are marked as required - Object.values(event.http.request.parameters || {}).some((x) => x) + Object.values(event.http.request.parameters || {}).some((x) => { + if (!_.isObject(x)) return x; + return x.required != null ? x.required : true; + }) ) { if (!validatorLogicalId) { const requestValidator = this.createRequestValidator(); diff --git a/test/fixtures/programmatic/requestParameters/serverless.yml b/test/fixtures/programmatic/requestParameters/serverless.yml index 658673dee..642dec642 100644 --- a/test/fixtures/programmatic/requestParameters/serverless.yml +++ b/test/fixtures/programmatic/requestParameters/serverless.yml @@ -47,6 +47,14 @@ functions: parameters: paths: bar: false + - http: + path: paths-not-required-object + method: get + request: + parameters: + paths: + bar: + required: false - http: path: paths-required method: get diff --git a/test/unit/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.test.js b/test/unit/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.test.js index 5ce34f136..97924dcc0 100644 --- a/test/unit/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.test.js +++ b/test/unit/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.test.js @@ -435,6 +435,7 @@ describe('#compileRequestValidators() - parameters', () => { 'querystrings-not-required', 'headers-not-required', 'paths-not-required', + 'paths-not-required-object', ]; const withValidator = [