mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-19 08:50:29 +00:00
Unify eventual getter implementations in a BaseRedisETARepository class
This commit is contained in:
62
src/repositories/shuttle/eta/BaseRedisETARepository.ts
Normal file
62
src/repositories/shuttle/eta/BaseRedisETARepository.ts
Normal file
@@ -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<IEta[]> {
|
||||||
|
throw new Error("Method not implemented.");
|
||||||
|
}
|
||||||
|
|
||||||
|
getEtasForStopId(stopId: string): Promise<IEta[]> {
|
||||||
|
throw new Error("Method not implemented.");
|
||||||
|
}
|
||||||
|
|
||||||
|
getEtaForShuttleAndStopId(shuttleId: string, stopId: string): Promise<IEta | null> {
|
||||||
|
throw new Error("Method not implemented.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// EventEmitter override methods for type safety
|
||||||
|
override on<T extends ETARepositoryEventName>(
|
||||||
|
event: T,
|
||||||
|
listener: ETARepositoryEventListener<T>,
|
||||||
|
): this;
|
||||||
|
override on(event: string | symbol, listener: (...args: any[]) => void): this {
|
||||||
|
return super.on(event, listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
override once<T extends ETARepositoryEventName>(
|
||||||
|
event: T,
|
||||||
|
listener: ETARepositoryEventListener<T>,
|
||||||
|
): this;
|
||||||
|
override once(event: string | symbol, listener: (...args: any[]) => void): this {
|
||||||
|
return super.once(event, listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
override off<T extends ETARepositoryEventName>(
|
||||||
|
event: T,
|
||||||
|
listener: ETARepositoryEventListener<T>,
|
||||||
|
): this;
|
||||||
|
override off(event: string | symbol, listener: (...args: any[]) => void): this {
|
||||||
|
return super.off(event, listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
override addListener<T extends ETARepositoryEventName>(
|
||||||
|
event: T,
|
||||||
|
listener: ETARepositoryEventListener<T>,
|
||||||
|
): this;
|
||||||
|
override addListener(event: string | symbol, listener: (...args: any[]) => void): this {
|
||||||
|
return super.addListener(event, listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
override removeListener<T extends ETARepositoryEventName>(
|
||||||
|
event: T,
|
||||||
|
listener: ETARepositoryEventListener<T>,
|
||||||
|
): 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,40 +1,13 @@
|
|||||||
import { IEta } from "../../../entities/ShuttleRepositoryEntities";
|
import { IEta } from "../../../entities/ShuttleRepositoryEntities";
|
||||||
import { BaseRedisRepository } from "../../BaseRedisRepository";
|
import { BaseRedisETARepository } from "./BaseRedisETARepository";
|
||||||
import { ETARepositoryEventName, ETARepositoryEventListener } from "./ETAGetterRepository";
|
|
||||||
import { ExternalSourceETARepository } from "./ExternalSourceETARepository";
|
import { ExternalSourceETARepository } from "./ExternalSourceETARepository";
|
||||||
|
|
||||||
export class RedisExternalSourceETARepository extends BaseRedisRepository implements ExternalSourceETARepository {
|
export class RedisExternalSourceETARepository extends BaseRedisETARepository implements ExternalSourceETARepository {
|
||||||
addOrUpdateEtaFromExternalSource(eta: IEta): Promise<void> {
|
addOrUpdateEtaFromExternalSource(eta: IEta): Promise<void> {
|
||||||
throw new Error("Method not implemented.");
|
throw new Error("Method not implemented.");
|
||||||
}
|
}
|
||||||
|
|
||||||
removeEtaIfExists(shuttleId: string, stopId: string): Promise<IEta | null> {
|
removeEtaIfExists(shuttleId: string, stopId: string): Promise<IEta | null> {
|
||||||
throw new Error("Method not implemented.");
|
throw new Error("Method not implemented.");
|
||||||
}
|
}
|
||||||
on<T extends ETARepositoryEventName>(event: T, listener: ETARepositoryEventListener<T>): this {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
once<T extends ETARepositoryEventName>(event: T, listener: ETARepositoryEventListener<T>): this {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
off<T extends ETARepositoryEventName>(event: T, listener: ETARepositoryEventListener<T>): this {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
addListener<T extends ETARepositoryEventName>(event: T, listener: ETARepositoryEventListener<T>): this {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
removeListener<T extends ETARepositoryEventName>(event: T, listener: ETARepositoryEventListener<T>): this {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
getEtasForShuttleId(shuttleId: string): Promise<IEta[]> {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
getEtasForStopId(stopId: string): Promise<IEta[]> {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
getEtaForShuttleAndStopId(shuttleId: string, stopId: string): Promise<IEta | null> {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
removeAllListeners(eventName?: string | symbol | undefined): this {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
import { IEta } from "../../../entities/ShuttleRepositoryEntities";
|
|
||||||
import { ETARepositoryEventName, ETARepositoryEventListener } from "./ETAGetterRepository";
|
|
||||||
import { SelfUpdatingETARepository } from "./SelfUpdatingETARepository";
|
import { SelfUpdatingETARepository } from "./SelfUpdatingETARepository";
|
||||||
import { BaseRedisRepository } from "../../BaseRedisRepository";
|
import { BaseRedisETARepository } from "./BaseRedisETARepository";
|
||||||
import { createClient, RedisClientType } from "redis";
|
import { createClient, RedisClientType } from "redis";
|
||||||
import { ShuttleGetterRepository, ShuttleTravelTimeDataIdentifier, ShuttleTravelTimeDateFilterArguments } from "../ShuttleGetterRepository";
|
import { ShuttleGetterRepository, ShuttleTravelTimeDataIdentifier, ShuttleTravelTimeDateFilterArguments } from "../ShuttleGetterRepository";
|
||||||
import { REDIS_RECONNECT_INTERVAL } from "../../../environment";
|
import { REDIS_RECONNECT_INTERVAL } from "../../../environment";
|
||||||
|
|
||||||
export class RedisSelfUpdatingETARepository extends BaseRedisRepository implements SelfUpdatingETARepository {
|
export class RedisSelfUpdatingETARepository extends BaseRedisETARepository implements SelfUpdatingETARepository {
|
||||||
constructor(
|
constructor(
|
||||||
readonly shuttleRepository: ShuttleGetterRepository,
|
readonly shuttleRepository: ShuttleGetterRepository,
|
||||||
redisClient: RedisClientType = createClient({
|
redisClient: RedisClientType = createClient({
|
||||||
@@ -20,37 +18,12 @@ export class RedisSelfUpdatingETARepository extends BaseRedisRepository implemen
|
|||||||
) {
|
) {
|
||||||
super(redisClient);
|
super(redisClient);
|
||||||
}
|
}
|
||||||
|
|
||||||
getAverageTravelTimeSeconds(identifier: ShuttleTravelTimeDataIdentifier, dateFilter: ShuttleTravelTimeDateFilterArguments): Promise<number | undefined> {
|
getAverageTravelTimeSeconds(identifier: ShuttleTravelTimeDataIdentifier, dateFilter: ShuttleTravelTimeDateFilterArguments): Promise<number | undefined> {
|
||||||
throw new Error("Method not implemented.");
|
throw new Error("Method not implemented.");
|
||||||
}
|
}
|
||||||
|
|
||||||
startListeningForUpdates(): void {
|
startListeningForUpdates(): void {
|
||||||
throw new Error("Method not implemented.");
|
throw new Error("Method not implemented.");
|
||||||
}
|
}
|
||||||
on<T extends ETARepositoryEventName>(event: T, listener: ETARepositoryEventListener<T>): this {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
once<T extends ETARepositoryEventName>(event: T, listener: ETARepositoryEventListener<T>): this {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
off<T extends ETARepositoryEventName>(event: T, listener: ETARepositoryEventListener<T>): this {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
addListener<T extends ETARepositoryEventName>(event: T, listener: ETARepositoryEventListener<T>): this {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
removeListener<T extends ETARepositoryEventName>(event: T, listener: ETARepositoryEventListener<T>): this {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
getEtasForShuttleId(shuttleId: string): Promise<IEta[]> {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
getEtasForStopId(stopId: string): Promise<IEta[]> {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
getEtaForShuttleAndStopId(shuttleId: string, stopId: string): Promise<IEta | null> {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
removeAllListeners(eventName?: string | symbol | undefined): this {
|
|
||||||
throw new Error("Method not implemented.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user