forked from dbsystel/1BahnQL
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRouteRelationships.js
39 lines (33 loc) · 1.06 KB
/
RouteRelationships.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
class RouteRelationships {
constructor(stationService, trackService) {
this.stationService = stationService;
this.trackService = trackService;
}
resolve(route) {
const stationService = this.stationService;
const trackService = this.trackService;
route.from = () => {
return stationService.stationByEvaId(route.parts[0].fromEvaId);
}
route.to = () => {
return stationService.stationByEvaId(route.parts[route.parts.length - 1].toEvaId);
}
route.parts = route.parts.map((part) => {
part.from = () => {
return stationService.stationByEvaId(part.fromEvaId);
}
part.to = () => {
return stationService.stationByEvaId(part.toEvaId);
}
part.departingTrack = () => {
return trackService.trackByEvaIdAndTrackNumber(part.fromEvaId, part.departingPlatformNumber);
}
part.arrivingTrack = () => {
return trackService.trackByEvaIdAndTrackNumber(part.toEvaId, part.arrivingPlatformNumber);
}
return part
})
return route
}
}
module.exports = RouteRelationships