diff --git a/src/repositories/ApiBasedRepository.ts b/src/repositories/ApiBasedRepository.ts index 8dab218..a207c8a 100644 --- a/src/repositories/ApiBasedRepository.ts +++ b/src/repositories/ApiBasedRepository.ts @@ -11,18 +11,26 @@ export interface ApiBasedRepositoryCache { // To speed things up, implement caches for other data later } -export class ApiBasedRepository implements GetterRepository { - private cache: ApiBasedRepositoryCache; +export interface ApiBasedRepositoryMillisecondTTLs { + etasForShuttleId: number, + etasForStopId: number, +} - constructor(initialCache: ApiBasedRepositoryCache | undefined = undefined) { - if (initialCache) { - this.cache = initialCache; - } else { - this.cache = { - etasForShuttleId: {}, - etasForStopId: {}, - } - } +const emptyCache: ApiBasedRepositoryCache = { + etasForShuttleId: {}, + etasForStopId: {}, +} + +const defaultTtls: ApiBasedRepositoryMillisecondTTLs = { + etasForShuttleId: 10000, + etasForStopId: 10000, +} + +export class ApiBasedRepository implements GetterRepository { + constructor( + private initialCache: ApiBasedRepositoryCache | undefined = emptyCache, + private ttls: ApiBasedRepositoryMillisecondTTLs = defaultTtls, + ) { } public async getEtaForShuttleAndStopId(shuttleId: string, stopId: string): Promise {