UNPKG

1.74 kBJavaScriptView Raw
1/*!
2 * Simple Node Mobile Portal
3 * Copyright(c) 2012 Faisal Kottarathil
4 * MIT Licensed
5 */
6/**
7 * Router middleware for `simpleportal.Server`
8 *
9 * @property router
10 * @for simpleportal
11 * @type {router}
12 * @static
13 */
14
15/**
16 * Router middleware for `simpleportal.Server`
17 *
18 * @class router
19 * @module middleware
20 * @static
21 */
22var router = module.exports = {};
23
24var util = require('./util');
25
26var DispatchWrapper = require('./wrapper/spdispatch').DispatchWrapper;
27
28var simpleportal = require('./simpleportal');
29
30var logger = require("./logger");
31
32function loopcallback(count, curcount, callback, error, data) {
33 if(count == curcount+1)
34 callback(error, data);
35}
36
37/**
38 * To register the middleware in to the `simpleportal.Server`
39 *
40 * @method register
41 * @param {} modules
42 * @param {callback} callback The callback to excecute when complete
43 */
44router.register = function(modules, callback) {
45 logger.getInstance().debug('Simpleportal - router:register', 'Registering routers');
46
47 var count = modules.length;
48 var cbcount = 0;
49
50 if(modules.length != 0)
51 for(var i = 0; i < modules.length;i++){
52 module = modules[i];
53
54 util.callModuleFunction(module, true, 'initRouter', router, function(error, data){
55 loopcallback(count, cbcount++, callback, error, data);
56 });
57 }
58 else
59 callback('No router to register!!');
60};
61
62/**
63 * To get the underlying `simpleportal.dispatch` handlers
64 *
65 * @method getDispatchHandler
66 * @param {} modules
67 * @param {callback} callback The callback to excecute when complete
68 * @return CallExpression dispatch handlers
69 */
70router.getDispatchHandler = function(modules, callback) {
71 var instance = this;
72
73 return instance.dispatch.handlers();
74}
75
76router.dispatch = new DispatchWrapper();
\No newline at end of file