mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-17 07:50:31 +00:00
Add logic to fire the SHUTTLE_WILL_LEAVE_STOP event
This commit is contained in:
@@ -398,13 +398,24 @@ export class RedisShuttleRepository extends BaseRedisRepository implements Shutt
|
||||
shuttle: IShuttle,
|
||||
travelTimeTimestamp = Date.now(),
|
||||
) {
|
||||
const isAtStop = await this.checkIfShuttleIsAtStop(shuttle.id);
|
||||
const arrivedStop = await this.getArrivedStopIfExists(shuttle);
|
||||
|
||||
// Will not fire *any* events if the same stop
|
||||
const lastStop = await this.getShuttleLastStopArrival(shuttle.id);
|
||||
if (lastStop?.stopId === arrivedStop?.id) return;
|
||||
|
||||
if (isAtStop) {
|
||||
if (lastStop) {
|
||||
this.emit(ShuttleRepositoryEvent.SHUTTLE_WILL_LEAVE_STOP, {
|
||||
stopArrivalThatShuttleIsLeaving: lastStop,
|
||||
});
|
||||
}
|
||||
await this.markShuttleAsNotAtStop(shuttle.id);
|
||||
}
|
||||
|
||||
if (arrivedStop) {
|
||||
// stop if same stop
|
||||
const lastStop = await this.getShuttleLastStopArrival(shuttle.id);
|
||||
if (lastStop?.stopId === arrivedStop.id) return;
|
||||
|
||||
const shuttleArrival = {
|
||||
stopId: arrivedStop.id,
|
||||
timestamp: new Date(travelTimeTimestamp),
|
||||
|
||||
Reference in New Issue
Block a user