diff --git a/src/entities/entities.ts b/src/entities/entities.ts index 79acaae..4f1f1dc 100644 --- a/src/entities/entities.ts +++ b/src/entities/entities.ts @@ -1,6 +1,6 @@ export interface IEntityWithIdAndOptionalTimestamp { id: string; - millisecondsSinceEpoch: number; + millisecondsSinceEpoch?: number; } export interface ISystem extends IEntityWithIdAndOptionalTimestamp { diff --git a/src/loaders/RepositoryDataLoader.ts b/src/loaders/RepositoryDataLoader.ts index f229843..fab71b9 100644 --- a/src/loaders/RepositoryDataLoader.ts +++ b/src/loaders/RepositoryDataLoader.ts @@ -1,4 +1,5 @@ -import { IOrderedStop, IRoute, IShuttle, IStop, ISystem, GetterSetterRepository } from "../repositories/GetterSetterRepository"; +import { GetterSetterRepository } from "../repositories/GetterSetterRepository"; +import { IRoute, IShuttle, IStop, ISystem } from "../entities/entities"; const timeout = 10000; const systemIdsToSupport = ["263"]; diff --git a/src/loaders/loadTestData.ts b/src/loaders/loadTestData.ts index 8fce9c9..9e83e8a 100644 --- a/src/loaders/loadTestData.ts +++ b/src/loaders/loadTestData.ts @@ -1,5 +1,6 @@ // Mock data -import { IEta, IOrderedStop, IRoute, IShuttle, IStop, ISystem, GetterSetterRepository } from "../repositories/GetterSetterRepository"; +import { IEta, IOrderedStop, IRoute, IShuttle, IStop, ISystem } from "../entities/entities"; +import { GetterSetterRepository } from "../repositories/GetterSetterRepository"; const systems: ISystem[] = [ { diff --git a/src/repositories/ApiBasedRepository.ts b/src/repositories/ApiBasedRepository.ts new file mode 100644 index 0000000..51ebf12 --- /dev/null +++ b/src/repositories/ApiBasedRepository.ts @@ -0,0 +1,68 @@ +import { GetterRepository } from "./GetterRepository"; +import { IEta } from "../entities/entities"; + +export class ApiBasedRepository implements GetterRepository { + public async getEtaForShuttleAndStopId(shuttleId: string, stopId: string): Promise { + // TODO: implement + + return null; + } + + public async getEtasForShuttleId(shuttleId: string): Promise<[]> { + // TODO: implement + + return []; + } + + public async getEtasForStopId(stopId: string): Promise<[]> { + return []; + } + + public async getOrderedStopByRouteAndStopId(routeId: string, stopId: string): Promise<| null> { + return null; + } + + public async getOrderedStopsByRouteId(routeId: string): Promise<[]> { + return Promise.resolve([]); + } + + public async getOrderedStopsByStopId(stopId: string): Promise<[]> { + return Promise.resolve([]); + } + + public async getRouteById(routeId: string): Promise<| null> { + return Promise.resolve(null); + } + + public async getRoutesBySystemId(systemId: string): Promise<[]> { + return Promise.resolve([]); + } + + public async getShuttleById(shuttleId: string): Promise<| null> { + return Promise.resolve(null); + } + + public async getShuttlesByRouteId(routeId: string): Promise<[]> { + return Promise.resolve([]); + } + + public async getShuttlesBySystemId(systemId: string): Promise<[]> { + return Promise.resolve([]); + } + + public async getStopById(stopId: string): Promise<| null> { + return null; + } + + public async getStopsBySystemId(systemId: string): Promise<[]> { + return []; + } + + public async getSystemById(systemId: string): Promise<| null> { + return null; + } + + public async getSystems(): Promise<[]> { + return Promise.resolve([]); + } +} \ No newline at end of file diff --git a/src/repositories/GetterRepository.ts b/src/repositories/GetterRepository.ts index 5d62dbd..4c6a3b0 100644 --- a/src/repositories/GetterRepository.ts +++ b/src/repositories/GetterRepository.ts @@ -1,4 +1,4 @@ -import { IEta, IOrderedStop, IRoute, IShuttle, IStop, ISystem } from "./GetterSetterRepository"; +import { IEta, IOrderedStop, IRoute, IShuttle, IStop, ISystem } from "../entities/entities"; export interface GetterRepository { getSystems(): Promise; diff --git a/src/repositories/UnoptimizedInMemoryRepository.ts b/src/repositories/UnoptimizedInMemoryRepository.ts index ad47221..60a8773 100644 --- a/src/repositories/UnoptimizedInMemoryRepository.ts +++ b/src/repositories/UnoptimizedInMemoryRepository.ts @@ -1,4 +1,13 @@ -import { IEntityWithId, IEta, IOrderedStop, IRoute, IShuttle, IStop, ISystem, GetterSetterRepository } from "./GetterSetterRepository"; +import { GetterSetterRepository } from "./GetterSetterRepository"; +import { + IEntityWithIdAndOptionalTimestamp, + IEta, + IOrderedStop, + IRoute, + IShuttle, + IStop, + ISystem +} from "../entities/entities"; /** * An unoptimized in memory repository. @@ -73,7 +82,7 @@ export class UnoptimizedInMemoryRepository implements GetterSetterRepository { return this.orderedStops.filter((value) => value.routeId === routeId); } - private findEntityById(entityId: string, arrayToSearchIn: T[]) { + private findEntityById(entityId: string, arrayToSearchIn: T[]) { return this.findEntityByMatcher((value) => value.id === entityId, arrayToSearchIn); }