mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-19 08:50:29 +00:00
Add a base protected method for adding ETAs and emitting events
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import { IEta } from "../../../entities/ShuttleRepositoryEntities";
|
import { IEta } from "../../../entities/ShuttleRepositoryEntities";
|
||||||
import { BaseRedisRepository } from "../../BaseRedisRepository";
|
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 {
|
export abstract class BaseRedisETARepository extends BaseRedisRepository implements ETAGetterRepository {
|
||||||
private static readonly ETA_KEY_PREFIX = 'shuttle:eta:';
|
private static readonly ETA_KEY_PREFIX = 'shuttle:eta:';
|
||||||
@@ -65,6 +65,14 @@ export abstract class BaseRedisETARepository extends BaseRedisRepository impleme
|
|||||||
return this.createEtaFromRedisData(data);
|
return this.createEtaFromRedisData(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Protected setter for internal use
|
||||||
|
protected async addOrUpdateEta(eta: IEta): Promise<void> {
|
||||||
|
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
|
// EventEmitter override methods for type safety
|
||||||
override on<T extends ETARepositoryEventName>(
|
override on<T extends ETARepositoryEventName>(
|
||||||
event: T,
|
event: T,
|
||||||
|
|||||||
Reference in New Issue
Block a user