From b37b97dc85bc9c698b96d0c9c0148c2187d948e9 Mon Sep 17 00:00:00 2001 From: Abhinav Maheshwari Date: Tue, 13 Dec 2016 02:13:36 +0530 Subject: [PATCH 1/4] Fixe for default API Gateway event schema for HTTP --- index.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) mode change 100644 => 100755 index.js diff --git a/index.js b/index.js old mode 100644 new mode 100755 index cd4787f..7a4cd29 --- a/index.js +++ b/index.js @@ -14,10 +14,8 @@ var routerSchema = Joi.object().keys({ }); var eventSchema = Joi.object().keys({ - context: Joi.object().keys({ - 'resource-path': Joi.string().required(), - 'http-method': Joi.string().required(), - }).unknown().required() + resource: Joi.string().required(), + httpMethod: Joi.string().required(), }).unknown().required(); module.exports = exports = internals.Router = function(options) { @@ -55,7 +53,7 @@ internals.Router.prototype.route = function(event, context) { return reject(error); } - if (event.context && event.context['resource-path']) { + if (event && event.resource) { let route = this._getRoute(event, context); if (route) { return route.handler(event, context) @@ -99,9 +97,9 @@ internals.Router.prototype._validationError = function(error) { } internals.Router.prototype._getRoute = function(event, context) { - var entry = this.routes[event.context['resource-path']]; + var entry = this.routes[event.resource]; if (entry) { - return entry[event.context['http-method'].toUpperCase()]; + return entry[event.httpMethod.toUpperCase()]; } else { return null; } From 3f302957dae64a1e584d17483274d0e7d84a4d2d Mon Sep 17 00:00:00 2001 From: Abhinav Maheshwari Date: Tue, 13 Dec 2016 02:19:49 +0530 Subject: [PATCH 2/4] Fixed arity of handler in router schema --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 7a4cd29..ae931a3 100755 --- a/index.js +++ b/index.js @@ -10,7 +10,7 @@ var internals = {}; var routerSchema = Joi.object().keys({ path: Joi.string().required(), method: Joi.string().required(), - handler: Joi.func().arity(2).required() + handler: Joi.func().required() }); var eventSchema = Joi.object().keys({ From a4e0a8aa41668c388bccf820215b71ebd944e10e Mon Sep 17 00:00:00 2001 From: Abhinav Maheshwari Date: Tue, 13 Dec 2016 02:30:37 +0530 Subject: [PATCH 3/4] Fix for registering multiple routes --- index.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/index.js b/index.js index ae931a3..57f2763 100755 --- a/index.js +++ b/index.js @@ -25,19 +25,22 @@ module.exports = exports = internals.Router = function(options) { }; -internals.Router.prototype.register = function(route) { - var routes = this.routes; +internals.Router.prototype.register = function(more_routes) { + for (var i=0; i < more_routes.length; i++) { + var route = route[i]; + var routes = this.routes; - Hoek.assert(route, 'route is required'); - var result = Joi.validate(route, routerSchema); - if (result.error) { - throw (result.error); - } + Hoek.assert(route, 'route is required'); + var result = Joi.validate(route, routerSchema); + if (result.error) { + throw (result.error); + } - if (!routes[route.path]) { - routes[route.path] = {}; + if (!routes[route.path]) { + routes[route.path] = {}; + } + routes[route.path][route.method.toUpperCase()] = route; } - routes[route.path][route.method.toUpperCase()] = route; }; internals.Router.prototype.route = function(event, context) { From a201a2922af63df7a116757105e4dff9e0b81e03 Mon Sep 17 00:00:00 2001 From: Abhinav Maheshwari Date: Tue, 13 Dec 2016 02:32:36 +0530 Subject: [PATCH 4/4] Fix for registering multiple routes --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 57f2763..ea067e8 100755 --- a/index.js +++ b/index.js @@ -27,7 +27,7 @@ module.exports = exports = internals.Router = function(options) { internals.Router.prototype.register = function(more_routes) { for (var i=0; i < more_routes.length; i++) { - var route = route[i]; + var route = more_routes[i]; var routes = this.routes; Hoek.assert(route, 'route is required');