-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmachine.js
More file actions
53 lines (43 loc) · 1.16 KB
/
machine.js
File metadata and controls
53 lines (43 loc) · 1.16 KB
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
var outOfOrder = 'out-of-order',
inUse = 'in-use',
available = 'available',
unknown = 'unknown',
statuses = {
'unknown': 'Unknown',
'out-of-order': 'Out of Order',
'in-use': 'In Use',
'available': 'Available'
};
var freeFlag = 0,
minutesLeft = 1,
oooFlag = 2,
globalId = 3,
statusNote = 6;
function parseStatus(machine, encodedStatus) {
var statusParts = encodedStatus.split(':');
if (statusParts[oooFlag] == 1) {
machine.status = outOfOrder;
} else if (statusParts[freeFlag] == 1) {
machine.status = available;
} else {
machine.status = inUse;
}
if (machine.status === inUse) {
machine.minutesLeft = parseInt(statusParts[minutesLeft]);
}
if (statusParts[statusNote] != 0) {
machine.message = statusParts[statusNote];
}
machine.globalId = statusParts[globalId];
machine.statusString = statuses[machine.status];
}
Machine = function(machineId, encodedStatus) {
this.machineId = machineId;
this.status = unknown;
this.statusString = ''
this.minutesLeft = 0;
this.message = '';
this.globalId = 0;
parseStatus(this, encodedStatus);
};
exports.Machine = Machine;