-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhelper.js
67 lines (62 loc) · 2.13 KB
/
helper.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
exports.genToken = () => {
// generate random token for post
return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15)
}
exports.processRes = trains => {
//adds time to compare for caching
addCacheInfo = trains => {
trainObj = {}
trainObj.trains = trains
trainObj.cacheTime = new Date
return trainObj
}
//sort trains to logical/preferred order
sortTrainOrder = trains => {
sortOrder = {'1':0,'2':1,'3':2,'4':3,'5':4,'6':5,'7':6,'A':7,'C':8,'E':9,'B':10,'D':11,
'F':12,'M':13,'G':14,'J':15,'Z':16,'L':17,'N':18,'Q':19,'R':20,'W':21,'S':22}
sortedTrains = []
trains.forEach(train => {
trainIndex = sortOrder[train.route]
if (trainIndex != null){
sortedTrains[trainIndex] = train
}
})
return addCacheInfo(sortedTrains)
}
//remove unneeded data & simplify objects
formatTrainData = trains => {
trains.forEach((train,index) => {
delete train.mode
delete train.agency
delete train.routeId
delete train.routeSortOrder
delete train.inService
delete train.routeType
if (train.statusDetails){
train.statusDetails = train.statusDetails[0]
delete train.statusDetails.creationDate
delete train.statusDetails.direction
delete train.statusDetails.endDate
delete train.statusDetails.priority
delete train.statusDetails.startDate
}
if (train.statusDetails == null){
train.statusDetails = {statusSummary:"all good."}
}else{
switch (train.statusDetails.statusSummary){
case "Planned Work": train.statusDetails.statusSummary = "planned work."
break
case "Service Change": train.statusDetails.statusSummary = "service change."
break
case "Delays": train.statusDetails.statusSummary = "delayed af."
break
case "Slow Speeds": train.statusDetails.statusSummary = "slow af."
break
default: train.statusDetails.statusSummary = "probably screwed."
}
}
})
return sortTrainOrder(trains)
}
return formatTrainData(trains)
}