add passenger telemetry
This commit is contained in:
32
backend/src/services/liveVehicleMapper.js
Normal file
32
backend/src/services/liveVehicleMapper.js
Normal file
@@ -0,0 +1,32 @@
|
||||
function parseNullableNumber(value) {
|
||||
if (value === undefined || value === null || value === '') {
|
||||
return null;
|
||||
}
|
||||
|
||||
const parsed = Number.parseFloat(value);
|
||||
return Number.isFinite(parsed) ? parsed : null;
|
||||
}
|
||||
|
||||
function decorateOfficialVehicle(row) {
|
||||
return {
|
||||
...row,
|
||||
source: 'official',
|
||||
confidence: 1,
|
||||
accuracy_m: parseNullableNumber(row.accuracy_meters),
|
||||
is_estimated: false
|
||||
};
|
||||
}
|
||||
|
||||
function sortLiveVehicles(a, b) {
|
||||
if (a.source !== b.source) {
|
||||
return a.source === 'official' ? -1 : 1;
|
||||
}
|
||||
|
||||
return new Date(b.last_seen_at).getTime() - new Date(a.last_seen_at).getTime();
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
decorateOfficialVehicle,
|
||||
parseNullableNumber,
|
||||
sortLiveVehicles
|
||||
};
|
||||
Reference in New Issue
Block a user