in packages/@prototype/simulator/src/SimulatorManagerStack/StatisticsLambda/@lambda/src/builders/driver.js [32:54]
DRIVER_STATUS_CHANGE: async (detail) => {
const { driverId, status, timestamp } = detail
let statusList = await client.keys(`${DRIVER_STATUS_STATISTICS}:*`)
statusList = (statusList || []).map(q => q.split(':').pop())
if (statusList.length === 0) {
statusList = [status]
}
if (!statusList.includes(status)) {
statusList.push(status)
}
const promises = statusList.filter(q => q !== 'all').map((s) => {
if (s === status) {
return client.hset(`${DRIVER_STATUS_STATISTICS}:${s}`, driverId, timestamp)
}
return client.hdel(`${DRIVER_STATUS_STATISTICS}:${s}`, driverId)
})
await Promise.all(promises)
},