mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-19 08:50:29 +00:00
Add support back in for external source ETA repositories, if we switch back later
This commit is contained in:
@@ -22,6 +22,7 @@ import { RedisSelfUpdatingETARepository } from "../repositories/shuttle/eta/Redi
|
||||
import { RedisExternalSourceETARepository } from "../repositories/shuttle/eta/RedisExternalSourceETARepository";
|
||||
import { InMemorySelfUpdatingETARepository } from "../repositories/shuttle/eta/InMemorySelfUpdatingETARepository";
|
||||
import { BaseRedisETARepository } from "../repositories/shuttle/eta/BaseRedisETARepository";
|
||||
import { BaseInMemoryETARepository } from "../repositories/shuttle/eta/BaseInMemoryETARepository";
|
||||
|
||||
export interface InterchangeSystemBuilderArguments {
|
||||
name: string;
|
||||
@@ -99,24 +100,33 @@ export class InterchangeSystem {
|
||||
private static async buildRedisShuttleLoaderAndRepositories(args: InterchangeSystemBuilderArguments) {
|
||||
const shuttleRepository = new RedisShuttleRepository();
|
||||
await shuttleRepository.connect();
|
||||
const shuttleDataLoader = new ApiBasedShuttleRepositoryLoader(
|
||||
args.passioSystemId,
|
||||
args.id,
|
||||
shuttleRepository
|
||||
);
|
||||
const timedShuttleDataLoader = new TimedApiBasedRepositoryLoader(
|
||||
shuttleDataLoader
|
||||
);
|
||||
|
||||
let etaRepository: BaseRedisETARepository;
|
||||
let shuttleDataLoader: ApiBasedShuttleRepositoryLoader;
|
||||
if (args.useSelfUpdatingEtas) {
|
||||
etaRepository = new RedisSelfUpdatingETARepository(shuttleRepository);
|
||||
(etaRepository as RedisSelfUpdatingETARepository).startListeningForUpdates();
|
||||
shuttleDataLoader = new ApiBasedShuttleRepositoryLoader(
|
||||
args.passioSystemId,
|
||||
args.id,
|
||||
shuttleRepository,
|
||||
);
|
||||
} else {
|
||||
etaRepository = new RedisExternalSourceETARepository();
|
||||
shuttleDataLoader = new ApiBasedShuttleRepositoryLoader(
|
||||
args.passioSystemId,
|
||||
args.id,
|
||||
shuttleRepository,
|
||||
etaRepository as RedisExternalSourceETARepository,
|
||||
);
|
||||
}
|
||||
await etaRepository.connect();
|
||||
|
||||
const timedShuttleDataLoader = new TimedApiBasedRepositoryLoader(
|
||||
shuttleDataLoader,
|
||||
);
|
||||
|
||||
|
||||
return { shuttleRepository, etaRepository, timedShuttleDataLoader };
|
||||
}
|
||||
|
||||
@@ -238,23 +248,33 @@ export class InterchangeSystem {
|
||||
|
||||
private static buildInMemoryShuttleLoaderAndRepositories(args: InterchangeSystemBuilderArguments) {
|
||||
const shuttleRepository = new UnoptimizedInMemoryShuttleRepository();
|
||||
const shuttleDataLoader = new ApiBasedShuttleRepositoryLoader(
|
||||
args.passioSystemId,
|
||||
args.id,
|
||||
shuttleRepository
|
||||
);
|
||||
|
||||
let etaRepository: BaseInMemoryETARepository;
|
||||
let shuttleDataLoader: ApiBasedShuttleRepositoryLoader;
|
||||
if (args.useSelfUpdatingEtas) {
|
||||
etaRepository = new InMemorySelfUpdatingETARepository(shuttleRepository);
|
||||
(etaRepository as InMemorySelfUpdatingETARepository).startListeningForUpdates();
|
||||
shuttleDataLoader = new ApiBasedShuttleRepositoryLoader(
|
||||
args.passioSystemId,
|
||||
args.id,
|
||||
shuttleRepository,
|
||||
);
|
||||
} else {
|
||||
etaRepository = new InMemoryExternalSourceETARepository();
|
||||
shuttleDataLoader = new ApiBasedShuttleRepositoryLoader(
|
||||
args.passioSystemId,
|
||||
args.id,
|
||||
shuttleRepository,
|
||||
etaRepository as InMemoryExternalSourceETARepository,
|
||||
);
|
||||
}
|
||||
|
||||
// Note that this loader should not be started,
|
||||
// so the test data doesn't get overwritten
|
||||
const timedShuttleLoader = new TimedApiBasedRepositoryLoader(
|
||||
shuttleDataLoader
|
||||
);
|
||||
|
||||
let etaRepository: ETAGetterRepository;
|
||||
if (args.useSelfUpdatingEtas) {
|
||||
etaRepository = new InMemorySelfUpdatingETARepository(shuttleRepository);
|
||||
} else {
|
||||
etaRepository = new InMemoryExternalSourceETARepository();
|
||||
}
|
||||
|
||||
return { shuttleRepository, etaRepository, timedShuttleLoader };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user