From 3b173aeb22721b09ca5d3366b2c5afc2fe211013 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Wed, 19 Feb 2025 10:47:58 -0800 Subject: [PATCH] add RepositoryLoader interface --- src/loaders/ApiBasedRepositoryLoader.ts | 5 +++-- src/loaders/RepositoryLoader.ts | 12 ++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 src/loaders/RepositoryLoader.ts diff --git a/src/loaders/ApiBasedRepositoryLoader.ts b/src/loaders/ApiBasedRepositoryLoader.ts index af8fd66..5bfe37d 100644 --- a/src/loaders/ApiBasedRepositoryLoader.ts +++ b/src/loaders/ApiBasedRepositoryLoader.ts @@ -1,5 +1,6 @@ import { GetterSetterRepository } from "../repositories/GetterSetterRepository"; import { IEntityWithId, IEta, IRoute, IShuttle, IStop, ISystem } from "../entities/entities"; +import { RepositoryLoader } from "./RepositoryLoader"; export class ApiResponseError extends Error { constructor(message: string) { @@ -13,7 +14,7 @@ export class ApiResponseError extends Error { * Passio Go API. Supports automatic pruning of all data types * which inherit from `IEntityWithId`. */ -export class ApiBasedRepositoryLoader { +export class ApiBasedRepositoryLoader implements RepositoryLoader { supportedSystemIds = ["263"]; baseUrl = "https://passiogo.com/mapGetData.php"; @@ -382,4 +383,4 @@ export class ApiBasedRepositoryLoader { })) } } -} \ No newline at end of file +} diff --git a/src/loaders/RepositoryLoader.ts b/src/loaders/RepositoryLoader.ts new file mode 100644 index 0000000..5e34c49 --- /dev/null +++ b/src/loaders/RepositoryLoader.ts @@ -0,0 +1,12 @@ +export interface RepositoryLoader { + fetchAndUpdateSystemData(): Promise; + fetchAndUpdateRouteDataForExistingSystemsInRepository(): Promise; + fetchAndUpdateRouteDataForSystemId(systemId: string): Promise; + fetchAndUpdateStopAndPolylineDataForRoutesInExistingSystemsInRepository(): Promise; + fetchAndUpdateStopAndPolylineDataForRoutesWithSystemId(systemId: string): Promise; + fetchAndUpdateShuttleDataForExistingSystemsInRepository(): Promise; + fetchAndUpdateShuttleDataForSystemId(systemId: string): Promise; + fetchAndUpdateEtaDataForExistingStopsForSystemsInRepository(): Promise; + fetchAndUpdateEtaDataForExistingStopsForSystemId(systemId: string): Promise; + fetchAndUpdateEtaDataForStopId(stopId: string): Promise; +}