in serverless-rest-api/javascript-http-sam/src/api/authorizer.js [123:149]
function addMethod(effect, verb, resource, conditions) {
if (verb !== '*' && !Object.prototype.hasOwnProperty.call(AuthPolicy.HttpVerb, verb)) {
throw new Error(`Invalid HTTP verb ${verb}. Allowed verbs in AuthPolicy.HttpVerb`);
}
if (!this.pathRegex.test(resource)) {
throw new Error(`Invalid resource path: ${resource}. Path should match ${this.pathRegex}`);
}
let cleanedResource = resource;
if (resource.substring(0, 1) === '/') {
cleanedResource = resource.substring(1, resource.length);
}
const resourceArn = `arn:aws:execute-api:${this.region}:${this.awsAccountId}:${this.restApiId}/${this.stage}/${verb}/${cleanedResource}`;
if (effect.toLowerCase() === 'allow') {
this.allowMethods.push({
resourceArn,
conditions,
});
} else if (effect.toLowerCase() === 'deny') {
this.denyMethods.push({
resourceArn,
conditions,
});
}
}