From bc7ba7d5076f7ac36cbb8e99c1dedf90df1cb228 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Tue, 11 Nov 2025 18:56:46 -0800 Subject: [PATCH] Subscribe to shuttle events and add stub methods --- .../eta/RedisSelfUpdatingETARepository.ts | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/repositories/shuttle/eta/RedisSelfUpdatingETARepository.ts b/src/repositories/shuttle/eta/RedisSelfUpdatingETARepository.ts index 3a84d7d..3da5fbd 100644 --- a/src/repositories/shuttle/eta/RedisSelfUpdatingETARepository.ts +++ b/src/repositories/shuttle/eta/RedisSelfUpdatingETARepository.ts @@ -1,8 +1,9 @@ import { SelfUpdatingETARepository } from "./SelfUpdatingETARepository"; import { BaseRedisETARepository } from "./BaseRedisETARepository"; import { createClient, RedisClientType } from "redis"; -import { ShuttleGetterRepository, ShuttleTravelTimeDataIdentifier, ShuttleTravelTimeDateFilterArguments } from "../ShuttleGetterRepository"; +import { ShuttleGetterRepository, ShuttleRepositoryEvent, ShuttleStopArrival, ShuttleTravelTimeDataIdentifier, ShuttleTravelTimeDateFilterArguments } from "../ShuttleGetterRepository"; import { REDIS_RECONNECT_INTERVAL } from "../../../environment"; +import { IShuttle } from "../../../entities/ShuttleRepositoryEntities"; export class RedisSelfUpdatingETARepository extends BaseRedisETARepository implements SelfUpdatingETARepository { constructor( @@ -23,7 +24,21 @@ export class RedisSelfUpdatingETARepository extends BaseRedisETARepository imple throw new Error("Method not implemented."); } - startListeningForUpdates(): void { - throw new Error("Method not implemented."); + startListeningForUpdates() { + this.shuttleRepository.addListener(ShuttleRepositoryEvent.SHUTTLE_UPDATED, this.handleShuttleUpdate); + this.shuttleRepository.addListener(ShuttleRepositoryEvent.SHUTTLE_ARRIVED_AT_STOP, this.handleShuttleArriveAtStop) + } + + stopListeningForUpdates() { + this.shuttleRepository.removeListener(ShuttleRepositoryEvent.SHUTTLE_UPDATED, this.handleShuttleUpdate); + this.shuttleRepository.removeListener(ShuttleRepositoryEvent.SHUTTLE_ARRIVED_AT_STOP, this.handleShuttleArriveAtStop); + } + + private handleShuttleUpdate(shuttle: IShuttle) { + // TODO: handle shuttle update + } + + private handleShuttleArriveAtStop(shuttleArrival: ShuttleStopArrival) { + // TODO: handle shuttle arrive at stop } }