-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
70 lines (50 loc) · 1.86 KB
/
index.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
import { createContainer, InjectionMode, asClass, listModules, asValue } from 'awilix';
import { asArray } from './helper/AwilixHelper';
import NewShedulerPushNotificationSender from './notifications/NewShedulerPushNotificationSender';
import NewShedulerSmsNotificationSender from './notifications/NewShedulerSmsNotificationSender';
import app from './config/bootstrap'
const configureScopeWeb = (app, container) => {
app.use((req, res, next) => {
console.log(`Creating scope per request`);
// create a scoped container
req.scope = container.createScope();
const userLoggedRetriever = req.scope.cradle.userLoggedRetriever;
// register some request-specific data..
req.scope.register({
currentUser: asValue(userLoggedRetriever.getCurrentUserFromRequest(req))
})
next();
})
}
const configureScheduleVisitRoute = (app) => {
app.get('/schedule', (req, res) => {
const newSchedulerService = req.scope.cradle.newSchedulerService;
var result = newSchedulerService.scheduleVisitFromWeb(null);
res.status(200).send(result);
})
}
const run = () => {
var container = createContainer({
injectionMode: InjectionMode.PROXY
});
container.register({
newSchedulerNotifications: asArray([
asClass(NewShedulerPushNotificationSender),
asClass(NewShedulerSmsNotificationSender)
])
});
container.loadModules(['services/**/*.js'], {
formatName: 'camelCase',
resolverOptions: {
injectionMode: InjectionMode.PROXY,
register: asClass
}
});
app.listen(10066);
configureScopeWeb(app, container);
configureScheduleVisitRoute(app);
console.log(container)
console.log("getUser(): " + JSON.stringify(container.cradle.userController.getCurrentUser()))
//console.log("scheduleVisit(): " + JSON.stringify(container.cradle.newSchedulerService.scheduleVisit(null, null)));
}
run();