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,