From d52eb4d65533e0956244f99b59f3e72e4d3a1aeb Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Tue, 7 Jan 2025 15:24:06 -0800 Subject: [PATCH] add TTLs object and update initialization --- src/repositories/ApiBasedRepository.ts | 30 ++++++++++++++++---------- 1 file changed, 19 insertions(+), 11 deletions(-) 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 {