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; +}