-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbroker.js
89 lines (70 loc) · 2.38 KB
/
broker.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
var settings = require('./settings');
var controller_cache = {};
var controller_helper = require('./controllers/helper');
exports.execute_controller = function(req, res, done){
try
{
var controller = getController(req.params.controller_name, req.cookies);
var controllerMethod = controller[req.params.controller_method];
controllerMethod(req, res, function(e, result){
if (!done)
{
if (e)
res.send(getResponse('FAILED', e.toString(), null));
else
res.send(getResponse('OK', '', result));
}
else
done(e, result);
});
}
catch(e)
{
res.send(getResponse('FAILED', e.toString(), null));
}
}
exports.get_response = function(status, message, data)
{
return getResponse(status, message, data);
}
function getResponse(status, message, data)
{
return {'status':status, 'message':message, 'data':data};
}
function getController(controllerName, cookies)
{
if (controller_cache[controllerName] == null)
{
var controllerInstance = require('./controllers/' + controllerName);
var baseController = require('./controllers/base_controller');
controllerInstance.api_url = settings.getSetting('api_url');
controllerInstance.helper = controller_helper;
controllerInstance.name = controllerName;
controllerInstance.settings = settings;
if (cookies['noductionline_session'] != null)
{
controllerInstance.session = JSON.parse(decodeURIComponent(cookies['noductionline_session']));
console.log(controllerInstance.session);
var controller_api = require('./controllers/api').client;
var controller_adapter = require('./controllers/api_adapter').adapter;
controller_api.initialize(controllerInstance.session, controller_adapter);
controllerInstance.api = controller_api;
console.log(controllerInstance.api);
}
else
controllerInstance.session = null;
console.log('cookies');
console.log(cookies);
for (var methodPointer in baseController)
{
if (baseController[methodPointer]['bind'])
controllerInstance[methodPointer] = baseController[methodPointer].bind(controllerInstance);
else
controllerInstance[methodPointer] = baseController[methodPointer];
}
controllerInstance.default_render_parameters['api_url'] = settings.getSetting('api_url')
controller_cache[controllerName] = controllerInstance;
}
console.log(controller_cache[controllerName]);
return controller_cache[controllerName];
}