From 7497c1d004deb1215dc84773ecc4d525f8ab4a03 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Tue, 11 Nov 2025 18:39:24 -0800 Subject: [PATCH] Apply the same events to UnoptimizedInMemoryShuttleRepository --- .../UnoptimizedInMemoryShuttleRepository.ts | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/repositories/shuttle/UnoptimizedInMemoryShuttleRepository.ts b/src/repositories/shuttle/UnoptimizedInMemoryShuttleRepository.ts index 0ebbaa8..54af40b 100644 --- a/src/repositories/shuttle/UnoptimizedInMemoryShuttleRepository.ts +++ b/src/repositories/shuttle/UnoptimizedInMemoryShuttleRepository.ts @@ -3,6 +3,7 @@ import { ShuttleGetterSetterRepository } from "./ShuttleGetterSetterRepository"; import { IOrderedStop, IRoute, IShuttle, IStop, shuttleHasArrivedAtStop } from "../../entities/ShuttleRepositoryEntities"; import { IEntityWithId } from "../../entities/SharedEntities"; import { + ShuttleRepositoryEvent, ShuttleRepositoryEventListener, ShuttleRepositoryEventName, ShuttleRepositoryEventPayloads, @@ -138,7 +139,6 @@ export class UnoptimizedInMemoryShuttleRepository public async addOrUpdateShuttle( shuttle: IShuttle, travelTimeTimestamp = Date.now(), - referenceCurrentTime = new Date(), ): Promise { const index = this.shuttles.findIndex((s) => s.id === shuttle.id); if (index !== -1) { @@ -147,6 +147,8 @@ export class UnoptimizedInMemoryShuttleRepository this.shuttles.push(shuttle); } + this.emit(ShuttleRepositoryEvent.SHUTTLE_UPDATED, shuttle); + await this.updateLastStopArrival(shuttle, travelTimeTimestamp); } @@ -175,17 +177,19 @@ export class UnoptimizedInMemoryShuttleRepository const arrivedStop = await this.getArrivedStopIfExists(shuttle); if (arrivedStop != undefined) { - await this.updateShuttleLastStopArrival(shuttle.id, { + const shuttleArrival = { stopId: arrivedStop.id, timestamp: new Date(travelTimeTimestamp), shuttleId: shuttle.id, - }); + }; + await this.updateShuttleLastStopArrival(shuttleArrival); + this.emit(ShuttleRepositoryEvent.SHUTTLE_ARRIVED_AT_STOP, shuttleArrival); } } - private async updateShuttleLastStopArrival(shuttleId: string, lastStopArrival: ShuttleStopArrival) { - this.shuttleLastStopArrivals.set(shuttleId, lastStopArrival); + private async updateShuttleLastStopArrival(lastStopArrival: ShuttleStopArrival) { + this.shuttleLastStopArrivals.set(lastStopArrival.shuttleId, lastStopArrival); } public async getAverageTravelTimeSeconds( @@ -253,7 +257,11 @@ export class UnoptimizedInMemoryShuttleRepository } public async removeShuttleIfExists(shuttleId: string): Promise { - return await this.removeEntityByIdIfExists(shuttleId, this.shuttles); + const shuttle = await this.removeEntityByIdIfExists(shuttleId, this.shuttles); + if (shuttle != null) { + this.emit(ShuttleRepositoryEvent.SHUTTLE_REMOVED, shuttle); + } + return shuttle; } public async removeStopIfExists(stopId: string): Promise {