diff --git a/src/repositories/shuttle/eta/BaseRedisETARepository.ts b/src/repositories/shuttle/eta/BaseRedisETARepository.ts new file mode 100644 index 0000000..13da39e --- /dev/null +++ b/src/repositories/shuttle/eta/BaseRedisETARepository.ts @@ -0,0 +1,62 @@ +import { IEta } from "../../../entities/ShuttleRepositoryEntities"; +import { BaseRedisRepository } from "../../BaseRedisRepository"; +import { ETAGetterRepository, ETARepositoryEventListener, ETARepositoryEventName } from "./ETAGetterRepository"; + +export abstract class BaseRedisETARepository extends BaseRedisRepository implements ETAGetterRepository { + getEtasForShuttleId(shuttleId: string): Promise { + throw new Error("Method not implemented."); + } + + getEtasForStopId(stopId: string): Promise { + throw new Error("Method not implemented."); + } + + getEtaForShuttleAndStopId(shuttleId: string, stopId: string): Promise { + throw new Error("Method not implemented."); + } + + // EventEmitter override methods for type safety + override on( + event: T, + listener: ETARepositoryEventListener, + ): this; + override on(event: string | symbol, listener: (...args: any[]) => void): this { + return super.on(event, listener); + } + + override once( + event: T, + listener: ETARepositoryEventListener, + ): this; + override once(event: string | symbol, listener: (...args: any[]) => void): this { + return super.once(event, listener); + } + + override off( + event: T, + listener: ETARepositoryEventListener, + ): this; + override off(event: string | symbol, listener: (...args: any[]) => void): this { + return super.off(event, listener); + } + + override addListener( + event: T, + listener: ETARepositoryEventListener, + ): this; + override addListener(event: string | symbol, listener: (...args: any[]) => void): this { + return super.addListener(event, listener); + } + + override removeListener( + event: T, + listener: ETARepositoryEventListener, + ): this; + override removeListener(event: string | symbol, listener: (...args: any[]) => void): this { + return super.removeListener(event, listener); + } + + override removeAllListeners(eventName?: string | symbol): this { + return super.removeAllListeners(eventName); + } +} diff --git a/src/repositories/shuttle/eta/RedisExternalSourceETARepository.ts b/src/repositories/shuttle/eta/RedisExternalSourceETARepository.ts index 033dc2e..3dac564 100644 --- a/src/repositories/shuttle/eta/RedisExternalSourceETARepository.ts +++ b/src/repositories/shuttle/eta/RedisExternalSourceETARepository.ts @@ -1,40 +1,13 @@ import { IEta } from "../../../entities/ShuttleRepositoryEntities"; -import { BaseRedisRepository } from "../../BaseRedisRepository"; -import { ETARepositoryEventName, ETARepositoryEventListener } from "./ETAGetterRepository"; +import { BaseRedisETARepository } from "./BaseRedisETARepository"; import { ExternalSourceETARepository } from "./ExternalSourceETARepository"; -export class RedisExternalSourceETARepository extends BaseRedisRepository implements ExternalSourceETARepository { +export class RedisExternalSourceETARepository extends BaseRedisETARepository implements ExternalSourceETARepository { addOrUpdateEtaFromExternalSource(eta: IEta): Promise { throw new Error("Method not implemented."); } + removeEtaIfExists(shuttleId: string, stopId: string): Promise { throw new Error("Method not implemented."); } - on(event: T, listener: ETARepositoryEventListener): this { - throw new Error("Method not implemented."); - } - once(event: T, listener: ETARepositoryEventListener): this { - throw new Error("Method not implemented."); - } - off(event: T, listener: ETARepositoryEventListener): this { - throw new Error("Method not implemented."); - } - addListener(event: T, listener: ETARepositoryEventListener): this { - throw new Error("Method not implemented."); - } - removeListener(event: T, listener: ETARepositoryEventListener): this { - throw new Error("Method not implemented."); - } - getEtasForShuttleId(shuttleId: string): Promise { - throw new Error("Method not implemented."); - } - getEtasForStopId(stopId: string): Promise { - throw new Error("Method not implemented."); - } - getEtaForShuttleAndStopId(shuttleId: string, stopId: string): Promise { - throw new Error("Method not implemented."); - } - removeAllListeners(eventName?: string | symbol | undefined): this { - throw new Error("Method not implemented."); - } } diff --git a/src/repositories/shuttle/eta/RedisSelfUpdatingETARepository.ts b/src/repositories/shuttle/eta/RedisSelfUpdatingETARepository.ts index d9aac9f..3a84d7d 100644 --- a/src/repositories/shuttle/eta/RedisSelfUpdatingETARepository.ts +++ b/src/repositories/shuttle/eta/RedisSelfUpdatingETARepository.ts @@ -1,12 +1,10 @@ -import { IEta } from "../../../entities/ShuttleRepositoryEntities"; -import { ETARepositoryEventName, ETARepositoryEventListener } from "./ETAGetterRepository"; import { SelfUpdatingETARepository } from "./SelfUpdatingETARepository"; -import { BaseRedisRepository } from "../../BaseRedisRepository"; +import { BaseRedisETARepository } from "./BaseRedisETARepository"; import { createClient, RedisClientType } from "redis"; import { ShuttleGetterRepository, ShuttleTravelTimeDataIdentifier, ShuttleTravelTimeDateFilterArguments } from "../ShuttleGetterRepository"; import { REDIS_RECONNECT_INTERVAL } from "../../../environment"; -export class RedisSelfUpdatingETARepository extends BaseRedisRepository implements SelfUpdatingETARepository { +export class RedisSelfUpdatingETARepository extends BaseRedisETARepository implements SelfUpdatingETARepository { constructor( readonly shuttleRepository: ShuttleGetterRepository, redisClient: RedisClientType = createClient({ @@ -20,37 +18,12 @@ export class RedisSelfUpdatingETARepository extends BaseRedisRepository implemen ) { super(redisClient); } + getAverageTravelTimeSeconds(identifier: ShuttleTravelTimeDataIdentifier, dateFilter: ShuttleTravelTimeDateFilterArguments): Promise { throw new Error("Method not implemented."); } + startListeningForUpdates(): void { throw new Error("Method not implemented."); } - on(event: T, listener: ETARepositoryEventListener): this { - throw new Error("Method not implemented."); - } - once(event: T, listener: ETARepositoryEventListener): this { - throw new Error("Method not implemented."); - } - off(event: T, listener: ETARepositoryEventListener): this { - throw new Error("Method not implemented."); - } - addListener(event: T, listener: ETARepositoryEventListener): this { - throw new Error("Method not implemented."); - } - removeListener(event: T, listener: ETARepositoryEventListener): this { - throw new Error("Method not implemented."); - } - getEtasForShuttleId(shuttleId: string): Promise { - throw new Error("Method not implemented."); - } - getEtasForStopId(stopId: string): Promise { - throw new Error("Method not implemented."); - } - getEtaForShuttleAndStopId(shuttleId: string, stopId: string): Promise { - throw new Error("Method not implemented."); - } - removeAllListeners(eventName?: string | symbol | undefined): this { - throw new Error("Method not implemented."); - } }