mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-17 07:50:31 +00:00
Build Redis parking repository instead of in-memory one
This commit is contained in:
@@ -13,6 +13,7 @@ import {
|
|||||||
buildParkingRepositoryLoaderIfExists,
|
buildParkingRepositoryLoaderIfExists,
|
||||||
ParkingRepositoryLoaderBuilderArguments
|
ParkingRepositoryLoaderBuilderArguments
|
||||||
} from "../loaders/parking/buildParkingRepositoryLoaderIfExists";
|
} from "../loaders/parking/buildParkingRepositoryLoaderIfExists";
|
||||||
|
import { RedisParkingRepository } from "../repositories/RedisParkingRepository";
|
||||||
|
|
||||||
export interface InterchangeSystemBuilderArguments {
|
export interface InterchangeSystemBuilderArguments {
|
||||||
name: string;
|
name: string;
|
||||||
@@ -75,7 +76,7 @@ export class InterchangeSystem {
|
|||||||
);
|
);
|
||||||
notificationScheduler.startListeningForUpdates();
|
notificationScheduler.startListeningForUpdates();
|
||||||
|
|
||||||
let { parkingRepository, timedParkingLoader } = this.buildParkingLoaderAndRepository(args.parkingSystemId);
|
let { parkingRepository, timedParkingLoader } = await this.buildRedisParkingLoaderAndRepository(args.parkingSystemId);
|
||||||
timedParkingLoader?.start();
|
timedParkingLoader?.start();
|
||||||
|
|
||||||
return new InterchangeSystem(
|
return new InterchangeSystem(
|
||||||
@@ -120,8 +121,8 @@ export class InterchangeSystem {
|
|||||||
);
|
);
|
||||||
notificationScheduler.startListeningForUpdates();
|
notificationScheduler.startListeningForUpdates();
|
||||||
|
|
||||||
let { parkingRepository, timedParkingLoader } = this.buildParkingLoaderAndRepository(args.parkingSystemId);
|
let { parkingRepository, timedParkingLoader } = this.buildInMemoryParkingLoaderAndRepository(args.parkingSystemId);
|
||||||
// Timed parking loader is not started
|
// Timed parking loader is not started here
|
||||||
|
|
||||||
return new InterchangeSystem(
|
return new InterchangeSystem(
|
||||||
args.name,
|
args.name,
|
||||||
@@ -135,7 +136,32 @@ export class InterchangeSystem {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static buildParkingLoaderAndRepository(id?: string) {
|
private static async buildRedisParkingLoaderAndRepository(id?: string) {
|
||||||
|
if (id === undefined) {
|
||||||
|
return { parkingRepository: null, timedParkingLoader: null };
|
||||||
|
}
|
||||||
|
|
||||||
|
let parkingRepository: RedisParkingRepository | null = new RedisParkingRepository();
|
||||||
|
await parkingRepository.connect();
|
||||||
|
|
||||||
|
const loaderBuilderArguments: ParkingRepositoryLoaderBuilderArguments = {
|
||||||
|
id,
|
||||||
|
repository: parkingRepository,
|
||||||
|
};
|
||||||
|
let parkingLoader = buildParkingRepositoryLoaderIfExists(
|
||||||
|
loaderBuilderArguments,
|
||||||
|
);
|
||||||
|
|
||||||
|
let timedParkingLoader = null;
|
||||||
|
if (parkingLoader == null) {
|
||||||
|
parkingRepository = null;
|
||||||
|
} else {
|
||||||
|
timedParkingLoader = new TimedApiBasedRepositoryLoader(parkingLoader);
|
||||||
|
}
|
||||||
|
return { parkingRepository, timedParkingLoader };
|
||||||
|
}
|
||||||
|
|
||||||
|
private static buildInMemoryParkingLoaderAndRepository(id?: string) {
|
||||||
if (id === undefined) {
|
if (id === undefined) {
|
||||||
return { parkingRepository: null, timedParkingLoader: null };
|
return { parkingRepository: null, timedParkingLoader: null };
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user