From e8f4e7b9eebf9f4459e4354abd15ef38eb459fca Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Tue, 11 Nov 2025 19:33:52 -0800 Subject: [PATCH] Add a base protected method for adding ETAs and emitting events --- src/repositories/shuttle/eta/BaseRedisETARepository.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/repositories/shuttle/eta/BaseRedisETARepository.ts b/src/repositories/shuttle/eta/BaseRedisETARepository.ts index 7df36f8..872af13 100644 --- a/src/repositories/shuttle/eta/BaseRedisETARepository.ts +++ b/src/repositories/shuttle/eta/BaseRedisETARepository.ts @@ -1,6 +1,6 @@ import { IEta } from "../../../entities/ShuttleRepositoryEntities"; import { BaseRedisRepository } from "../../BaseRedisRepository"; -import { ETAGetterRepository, ETARepositoryEventListener, ETARepositoryEventName } from "./ETAGetterRepository"; +import { ETAGetterRepository, ETARepositoryEvent, ETARepositoryEventListener, ETARepositoryEventName } from "./ETAGetterRepository"; export abstract class BaseRedisETARepository extends BaseRedisRepository implements ETAGetterRepository { private static readonly ETA_KEY_PREFIX = 'shuttle:eta:'; @@ -65,6 +65,14 @@ export abstract class BaseRedisETARepository extends BaseRedisRepository impleme return this.createEtaFromRedisData(data); } + // Protected setter for internal use + protected async addOrUpdateEta(eta: IEta): Promise { + const key = this.createEtaKey(eta.shuttleId, eta.stopId); + const hash = this.createRedisHashFromEta(eta); + await this.redisClient.hSet(key, hash); + this.emit(ETARepositoryEvent.ETA_UPDATED, eta); + } + // EventEmitter override methods for type safety override on( event: T,