From 110df5501db470eb2780e1f9da7326254a81846e Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Thu, 10 Apr 2025 16:24:16 -0700 Subject: [PATCH] add chapman repository loader and buildParkingRepositoryLoaderIfExists function --- ...ChapmanTimedApiBasedParkingRepositoryLoader.ts | 14 ++++++++++++++ .../ParkingRepositoryLoader.ts | 0 .../buildParkingRepositoryLoaderIfExists.ts | 15 +++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 src/loaders/ParkingRepositoryLoaders/ChapmanTimedApiBasedParkingRepositoryLoader.ts rename src/loaders/{ => ParkingRepositoryLoaders}/ParkingRepositoryLoader.ts (100%) create mode 100644 src/loaders/ParkingRepositoryLoaders/buildParkingRepositoryLoaderIfExists.ts diff --git a/src/loaders/ParkingRepositoryLoaders/ChapmanTimedApiBasedParkingRepositoryLoader.ts b/src/loaders/ParkingRepositoryLoaders/ChapmanTimedApiBasedParkingRepositoryLoader.ts new file mode 100644 index 0000000..0ff07ef --- /dev/null +++ b/src/loaders/ParkingRepositoryLoaders/ChapmanTimedApiBasedParkingRepositoryLoader.ts @@ -0,0 +1,14 @@ +import { ParkingRepositoryLoader } from "./ParkingRepositoryLoader"; +import { ParkingGetterSetterRepository } from "../../repositories/ParkingGetterSetterRepository"; + +export class ChapmanTimedApiBasedParkingRepositoryLoader implements ParkingRepositoryLoader { + public static readonly id = "chapman-parking-loader"; + + constructor( + public repository: ParkingGetterSetterRepository + ) {} + + async fetchAndUpdateParkingStructures(): Promise { + // TODO + } +} diff --git a/src/loaders/ParkingRepositoryLoader.ts b/src/loaders/ParkingRepositoryLoaders/ParkingRepositoryLoader.ts similarity index 100% rename from src/loaders/ParkingRepositoryLoader.ts rename to src/loaders/ParkingRepositoryLoaders/ParkingRepositoryLoader.ts diff --git a/src/loaders/ParkingRepositoryLoaders/buildParkingRepositoryLoaderIfExists.ts b/src/loaders/ParkingRepositoryLoaders/buildParkingRepositoryLoaderIfExists.ts new file mode 100644 index 0000000..85a744f --- /dev/null +++ b/src/loaders/ParkingRepositoryLoaders/buildParkingRepositoryLoaderIfExists.ts @@ -0,0 +1,15 @@ +import { ParkingGetterSetterRepository } from "../../repositories/ParkingGetterSetterRepository"; +import { ChapmanTimedApiBasedParkingRepositoryLoader } from "./ChapmanTimedApiBasedParkingRepositoryLoader"; + +interface ParkingRepositoryBuilderArguments { + id: string; + repository: ParkingGetterSetterRepository; +} + +export function buildParkingRepositoryLoaderIfExists(args: ParkingRepositoryBuilderArguments) { + if (args.id === ChapmanTimedApiBasedParkingRepositoryLoader.id) { + return new ChapmanTimedApiBasedParkingRepositoryLoader(args.repository); + } + + return null; +}