mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-17 16:00:32 +00:00
finish the rename for the data loaders
This commit is contained in:
@@ -4,9 +4,9 @@ import { startStandaloneServer } from "@apollo/server/standalone";
|
||||
import { MergedResolvers } from "./MergedResolvers";
|
||||
import { ServerContext } from "./ServerContext";
|
||||
import { UnoptimizedInMemoryShuttleRepository } from "./repositories/UnoptimizedInMemoryShuttleRepository";
|
||||
import { TimedApiBasedRepositoryLoader } from "./loaders/TimedApiBasedRepositoryLoader";
|
||||
import { TimedApiBasedShuttleRepositoryLoader } from "./loaders/TimedApiBasedShuttleRepositoryLoader";
|
||||
import { ETANotificationScheduler } from "./notifications/schedulers/ETANotificationScheduler";
|
||||
import { loadTestData } from "./loaders/loadTestData";
|
||||
import { loadShuttleTestData } from "./loaders/loadShuttleTestData";
|
||||
import { AppleNotificationSender } from "./notifications/senders/AppleNotificationSender";
|
||||
|
||||
const typeDefs = readFileSync("./schema.graphqls", "utf8");
|
||||
@@ -22,11 +22,11 @@ async function main() {
|
||||
let notificationService: ETANotificationScheduler;
|
||||
if (process.argv.length > 2 && process.argv[2] == "integration-testing") {
|
||||
console.log("Using integration testing setup")
|
||||
await loadTestData(repository);
|
||||
await loadShuttleTestData(repository);
|
||||
const appleNotificationSender = new AppleNotificationSender(false);
|
||||
notificationService = new ETANotificationScheduler(repository, appleNotificationSender);
|
||||
} else {
|
||||
const repositoryDataUpdater = new TimedApiBasedRepositoryLoader(
|
||||
const repositoryDataUpdater = new TimedApiBasedShuttleRepositoryLoader(
|
||||
repository
|
||||
);
|
||||
await repositoryDataUpdater.start();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ShuttleGetterSetterRepository } from "../repositories/ShuttleGetterSetterRepository";
|
||||
import { IEntityWithId, IEta, IRoute, IShuttle, IStop, ISystem } from "../entities/entities";
|
||||
import { RepositoryLoader } from "./RepositoryLoader";
|
||||
import { ShuttleRepositoryLoader } from "./ShuttleRepositoryLoader";
|
||||
|
||||
export class ApiResponseError extends Error {
|
||||
constructor(message: string) {
|
||||
@@ -14,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 implements RepositoryLoader {
|
||||
export class ApiBasedShuttleRepositoryLoader implements ShuttleRepositoryLoader {
|
||||
supportedSystemIds = ["263"];
|
||||
baseUrl = "https://passiogo.com/mapGetData.php";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export interface RepositoryLoader {
|
||||
export interface ShuttleRepositoryLoader {
|
||||
fetchAndUpdateSystemData(): Promise<void>;
|
||||
fetchAndUpdateRouteDataForExistingSystemsInRepository(): Promise<void>;
|
||||
fetchAndUpdateRouteDataForSystemId(systemId: string): Promise<void>;
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ShuttleGetterSetterRepository } from "../repositories/ShuttleGetterSetterRepository";
|
||||
import { ApiBasedRepositoryLoader } from "./ApiBasedRepositoryLoader";
|
||||
import { ApiBasedShuttleRepositoryLoader } from "./ApiBasedShuttleRepositoryLoader";
|
||||
|
||||
// Ideas to break this into smaller pieces in the future:
|
||||
// Have one repository data loader running for each supported system
|
||||
@@ -15,7 +15,7 @@ import { ApiBasedRepositoryLoader } from "./ApiBasedRepositoryLoader";
|
||||
// - OrderedStops: reload every few minutes
|
||||
// - Systems: reload once a day
|
||||
|
||||
export class TimedApiBasedRepositoryLoader extends ApiBasedRepositoryLoader {
|
||||
export class TimedApiBasedShuttleRepositoryLoader extends ApiBasedShuttleRepositoryLoader {
|
||||
private shouldBeRunning: boolean = false;
|
||||
private timer: any;
|
||||
|
||||
@@ -4454,7 +4454,7 @@ const etas: IEta[] = [
|
||||
}
|
||||
];
|
||||
|
||||
export async function loadTestData(repository: ShuttleGetterSetterRepository) {
|
||||
export async function loadShuttleTestData(repository: ShuttleGetterSetterRepository) {
|
||||
await Promise.all(systems.map(async (system) => {
|
||||
await repository.addOrUpdateSystem(system);
|
||||
}));
|
||||
Reference in New Issue
Block a user