diff --git a/src/repositories/shuttle/eta/ExternalSourceETARepository.ts b/src/repositories/shuttle/eta/ExternalSourceETARepository.ts index 53dfe5d..5910d62 100644 --- a/src/repositories/shuttle/eta/ExternalSourceETARepository.ts +++ b/src/repositories/shuttle/eta/ExternalSourceETARepository.ts @@ -8,4 +8,6 @@ export interface ExternalSourceETARepository extends ETAGetterRepository { addOrUpdateEtaFromExternalSource(eta: IEta): Promise; removeEtaIfExists(shuttleId: string, stopId: string): Promise; + + clearAllData(): Promise; } diff --git a/src/repositories/shuttle/eta/RedisExternalSourceETARepository.ts b/src/repositories/shuttle/eta/RedisExternalSourceETARepository.ts index c4cff9b..daa1dd4 100644 --- a/src/repositories/shuttle/eta/RedisExternalSourceETARepository.ts +++ b/src/repositories/shuttle/eta/RedisExternalSourceETARepository.ts @@ -1,8 +1,29 @@ +import { createClient, RedisClientType } from "redis"; import { IEta } from "../../../entities/ShuttleRepositoryEntities"; import { ETARepositoryEventName, ETARepositoryEventListener } from "./ETAGetterRepository"; import { ExternalSourceETARepository } from "./ExternalSourceETARepository"; +import { REDIS_RECONNECT_INTERVAL } from "../../../environment"; export class RedisExternalSourceETARepository implements ExternalSourceETARepository { + constructor( + private redisClient: RedisClientType = createClient({ + url: process.env.REDIS_URL, + socket: { + tls: process.env.NODE_ENV === 'production', + rejectUnauthorized: false, + reconnectStrategy: REDIS_RECONNECT_INTERVAL, + }, + }) + ) {} + + public async connect() { + await this.redisClient.connect(); + } + + public async disconnect() { + await this.redisClient.disconnect(); + } + addOrUpdateEtaFromExternalSource(eta: IEta): Promise { throw new Error("Method not implemented."); } @@ -63,4 +84,7 @@ export class RedisExternalSourceETARepository implements ExternalSourceETAReposi eventNames(): (string | symbol)[] { throw new Error("Method not implemented."); } + clearAllData(): Promise { + throw new Error("Method not implemented."); + } }