Revert "change caching and repository api to include system id initializer"

This reverts commit e7e915a8b1.
This commit is contained in:
2025-01-07 20:07:05 -08:00
parent e7e915a8b1
commit f442c6b279
2 changed files with 26 additions and 25 deletions

View File

@@ -8,11 +8,11 @@ export interface ApiBasedRepositoryCache {
etasForStopId?: { etasForStopId?: {
[stopId: string]: IEta[], [stopId: string]: IEta[],
}, },
stopsByStopId?: { stopsBySystemId?: {
[stopId: string]: IStop, [systemId: string]: IStop[],
}, },
shuttleByShuttleId?: { shuttlesByShuttleId?: {
[shuttleId: string]: IShuttle, [shuttleId: string]: IShuttle[],
}, },
// To speed things up, implement caches for other data later // To speed things up, implement caches for other data later
} }
@@ -34,7 +34,6 @@ const defaultTtls: ApiBasedRepositoryMillisecondTTLs = {
export class ApiBasedRepository implements GetterRepository { export class ApiBasedRepository implements GetterRepository {
constructor( constructor(
private systemId: string,
private initialCache: ApiBasedRepositoryCache | undefined = emptyCache, private initialCache: ApiBasedRepositoryCache | undefined = emptyCache,
private ttls: ApiBasedRepositoryMillisecondTTLs = defaultTtls, private ttls: ApiBasedRepositoryMillisecondTTLs = defaultTtls,
) { ) {

View File

@@ -149,7 +149,7 @@ describe("getEtaForShuttleAndStopId", () => {
test("getEtaForShuttleAndStopId returns correct ETA data", async () => { test("getEtaForShuttleAndStopId returns correct ETA data", async () => {
updateGlobalFetchMockJson(genericEtaDataByStopId); updateGlobalFetchMockJson(genericEtaDataByStopId);
const repository = new ApiBasedRepository("1"); const repository = new ApiBasedRepository();
const result = await repository.getEtaForShuttleAndStopId("5577", "177666"); const result = await repository.getEtaForShuttleAndStopId("5577", "177666");
expect(result?.secondsRemaining).toEqual(587); expect(result?.secondsRemaining).toEqual(587);
@@ -157,7 +157,7 @@ describe("getEtaForShuttleAndStopId", () => {
}); });
test("getEtaForShuttleAndStopId returns null if API call is invalid and cache is empty", async () => { test("getEtaForShuttleAndStopId returns null if API call is invalid and cache is empty", async () => {
const repository = new ApiBasedRepository("1"); const repository = new ApiBasedRepository();
const result = await repository.getEtaForShuttleAndStopId("5577", "177666"); const result = await repository.getEtaForShuttleAndStopId("5577", "177666");
expect(result).toEqual(null); expect(result).toEqual(null);
@@ -190,7 +190,7 @@ describe("getEtasForShuttleId", () => {
etasForStopId: 100000, etasForStopId: 100000,
}; };
const repository = new ApiBasedRepository("1", initialCache, ttls); const repository = new ApiBasedRepository(initialCache, ttls);
repository.updateEtasForSystemIfTTL = jest.fn(async () => { repository.updateEtasForSystemIfTTL = jest.fn(async () => {
}); });
const result = await repository.getEtasForShuttleId("5577"); const result = await repository.getEtasForShuttleId("5577");
@@ -199,7 +199,7 @@ describe("getEtasForShuttleId", () => {
}); });
test("getEtasForShuttleId returns empty array if no data available", async () => { test("getEtasForShuttleId returns empty array if no data available", async () => {
const repository = new ApiBasedRepository("1"); const repository = new ApiBasedRepository();
repository.updateEtasForSystemIfTTL = jest.fn(async () => { repository.updateEtasForSystemIfTTL = jest.fn(async () => {
}); });
const result = await repository.getEtasForShuttleId("5577"); const result = await repository.getEtasForShuttleId("5577");
@@ -234,7 +234,7 @@ describe("getEtasForStopId", () => {
etasForStopId: 100000, etasForStopId: 100000,
}; };
const repository = new ApiBasedRepository("1", initialCache, ttls); const repository = new ApiBasedRepository(initialCache, ttls);
repository.updateEtasForSystemIfTTL = jest.fn(async () => { repository.updateEtasForSystemIfTTL = jest.fn(async () => {
}); });
const result = await repository.getEtasForStopId("177666"); const result = await repository.getEtasForStopId("177666");
@@ -243,7 +243,7 @@ describe("getEtasForStopId", () => {
}); });
test("getEtasForStopId returns empty array if no data available", async () => { test("getEtasForStopId returns empty array if no data available", async () => {
const repository = new ApiBasedRepository("1"); const repository = new ApiBasedRepository();
repository.updateEtasForSystemIfTTL = jest.fn(async () => { repository.updateEtasForSystemIfTTL = jest.fn(async () => {
}); });
const result = await repository.getEtasForShuttleId("5577"); const result = await repository.getEtasForShuttleId("5577");
@@ -275,18 +275,20 @@ describe("updateEtasForSystemIfTTL", () => {
expectedEta, expectedEta,
], ],
}, },
stopsByStopId: { stopsBySystemId: {
"1": { "1": [
systemId: "1", {
millisecondsSinceEpoch: Date.now() - 1000, systemId: "1",
name: "Chapman Court", millisecondsSinceEpoch: Date.now() - 1000,
id: "177666", name: "Chapman Court",
coordinates: { id: "177666",
latitude: 33.796796, coordinates: {
longitude: -117.889293 latitude: 33.796796,
}, longitude: -117.889293
} },
} }
],
},
}; };
const ttls: ApiBasedRepositoryMillisecondTTLs = { const ttls: ApiBasedRepositoryMillisecondTTLs = {
@@ -294,7 +296,7 @@ describe("updateEtasForSystemIfTTL", () => {
etasForStopId: 100000, etasForStopId: 100000,
}; };
const repository = new ApiBasedRepository("1", initialCache, ttls); const repository = new ApiBasedRepository(initialCache, ttls);
await repository.updateEtasForSystemIfTTL("1"); await repository.updateEtasForSystemIfTTL("1");
const updatedResult = await repository.getEtaForShuttleAndStopId( const updatedResult = await repository.getEtaForShuttleAndStopId(
@@ -307,7 +309,7 @@ describe("updateEtasForSystemIfTTL", () => {
test("updateEtasForSystemIfTTL updates all ETA data if data is TTL", async () => { test("updateEtasForSystemIfTTL updates all ETA data if data is TTL", async () => {
updateGlobalFetchMockJson(genericEtaDataByStopId); updateGlobalFetchMockJson(genericEtaDataByStopId);
const repository = new ApiBasedRepository("1"); const repository = new ApiBasedRepository();
repository.getStopsBySystemId = jest.fn(async () => { repository.getStopsBySystemId = jest.fn(async () => {
return [ return [
{ {