diff --git a/uplink-gemini/lib/router.js-old b/uplink-gemini/lib/router.js-old deleted file mode 100644 index eef6c45..0000000 --- a/uplink-gemini/lib/router.js-old +++ /dev/null @@ -1,102 +0,0 @@ -// Uplink Gemini Server -// Router Class - -function selectRoute(path, routes) { - result = -1; -// console.log(path); - var mPathComponents = path.split('/'); - routes.forEach((item, index) => { -// console.log(item); - var mitem = item.split('/'); - if((mitem.length == mPathComponents.length)) { - if((item.indexOf(':') > 0) && (path.endsWith('/') == false)) { -// console.log('we need parameters'); - var mmitem = item.substring(item.indexOf(':')); - var mmpath = path.substring(item.indexOf(':')); - var mmitemList = mmitem.split('/'); - var mmpathList = mmpath.split('/'); - if(mmitemList.length == mmpathList.length) { -// console.log('winner is here'); - if(result == -1) result = index; - } - } else { -// console.log('we do not need parameters'); - if(item == path) { -// console.log('winnere here'); - if(result == -1) result = index; - } - } - } - }); - return result; -} - -module.exports = class Router { - constructor() { - this.routes = []; - this.handlers = []; - } - - use(route, handler) { - this.routes[this.routes.length] = route; - this.handlers[this.handlers.length] = handler; - this.request = undefined; - this.response = undefined; - } - - set(path, request, response) { - this.request = request; - this.response = response; - - ///////////////////////////////////// -// console.log(selectRoute(path, this.routes)); - - - - ///////////////////////////////////// - - var pathComponents = path.split('/'); - for (var i = 0; i < pathComponents.length; i++) { - pathComponents[i] = '/' + pathComponents[i]; - } - - var routes = this.routes; - - var paths = []; - var params = []; - - var mindex = selectRoute(path, this.routes); - - var routeComponents = routes[mindex].split('/'); - paths = []; - params = []; - - if (routeComponents.length == pathComponents.length) { - for (var k = 0; k < routeComponents.length; k++) { - routeComponents[k] = '/' + routeComponents[k]; - if (routeComponents[k].startsWith('/:')) { - params.push(routeComponents[k]); - } else { - paths.push(routeComponents[k]); - } - } - } - - var finalParams = pathComponents.slice(paths.length); - for (var l = 0; l < finalParams.length; l++) { - finalParams[l] = finalParams[l].substring(1); - } - var myParams = {}; - for (var m = 0; m < params.length; m++) { - eval('myParams.' + params[m].substring(2) + ' = "' + JSON.stringify(finalParams[m]).slice(1, -1) + '"'); - } - - this.request.params = myParams; - var mm = typeof this.handlers[mindex]; - if (mm !== 'undefined') { - this.handlers[mindex](this.request, this.response); - } else { - this.response.error(51); - } - } -}; diff --git a/uplink-gemini/lib/router.js~ b/uplink-gemini/lib/router.js~ deleted file mode 100644 index 05bc871..0000000 --- a/uplink-gemini/lib/router.js~ +++ /dev/null @@ -1,102 +0,0 @@ -// Uplink Gemini Server -// Router Class - -function selectRoute(path, routes) { - result = -1; - console.log(path); - var mPathComponents = path.split('/'); - routes.forEach((item, index) => { - console.log(item); - var mitem = item.split('/'); - if((mitem.length == mPathComponents.length)) { - if((item.indexOf(':') > 0) && (path.endsWith('/') == false)) { - console.log('we need parameters'); - var mmitem = item.substring(item.indexOf(':')); - var mmpath = path.substring(item.indexOf(':')); - var mmitemList = mmitem.split('/'); - var mmpathList = mmpath.split('/'); - if(mmitemList.length == mmpathList.length) { - console.log('winner is here'); - if(result == -1) result = index; - } - } else { - console.log('we do not need parameters'); - if(item == path) { - console.log('winnere here'); - if(result == -1) result = index; - } - } - } - }); - return result; -} - -module.exports = class Router { - constructor() { - this.routes = []; - this.handlers = []; - } - - use(route, handler) { - this.routes[this.routes.length] = route; - this.handlers[this.handlers.length] = handler; - this.request = undefined; - this.response = undefined; - } - - set(path, request, response) { - this.request = request; - this.response = response; - - ///////////////////////////////////// - console.log(selectRoute(path, this.routes)); - - - - ///////////////////////////////////// - - var pathComponents = path.split('/'); - for (var i = 0; i < pathComponents.length; i++) { - pathComponents[i] = '/' + pathComponents[i]; - } - - var routes = this.routes; - - var paths = []; - var params = []; - - var mindex = selectRoute(path, this.routes); - - var routeComponents = routes[mindex].split('/'); - paths = []; - params = []; - - if (routeComponents.length == pathComponents.length) { - for (var k = 0; k < routeComponents.length; k++) { - routeComponents[k] = '/' + routeComponents[k]; - if (routeComponents[k].startsWith('/:')) { - params.push(routeComponents[k]); - } else { - paths.push(routeComponents[k]); - } - } - } - - var finalParams = pathComponents.slice(paths.length); - for (var l = 0; l < finalParams.length; l++) { - finalParams[l] = finalParams[l].substring(1); - } - var myParams = {}; - for (var m = 0; m < params.length; m++) { - eval('myParams.' + params[m].substring(2) + ' = "' + JSON.stringify(finalParams[m]).slice(1, -1) + '"'); - } - - this.request.params = myParams; - var mm = typeof this.handlers[mindex]; - if (mm !== 'undefined') { - this.handlers[mindex](this.request, this.response); - } else { - this.response.error(51); - } - } -};