diff --git a/src/ServerContext.ts b/src/ServerContext.ts new file mode 100644 index 0000000..b636ad3 --- /dev/null +++ b/src/ServerContext.ts @@ -0,0 +1,5 @@ +import { GetterSetterRepository } from "./repositories/GetterSetterRepository"; + +export interface ServerContext { + repository: GetterSetterRepository +} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index c79732d..da21b2b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,10 +2,10 @@ import { readFileSync } from "fs"; import { ApolloServer } from "@apollo/server"; import { startStandaloneServer } from "@apollo/server/standalone"; import { resolvers } from "./resolvers"; -import { loadTestData } from "./loaders/testData"; -import { ServerContext } from "./serverContext"; -import { UnoptimizedInMemoryRepository } from "./repositories/unoptimizedInMemoryRepository"; -import { RepositoryDataLoader } from "./loaders/repositoryDataLoader"; +import { loadTestData } from "./loaders/loadTestData"; +import { ServerContext } from "./ServerContext"; +import { UnoptimizedInMemoryRepository } from "./repositories/UnoptimizedInMemoryRepository"; +import { RepositoryDataLoader } from "./loaders/RepositoryDataLoader"; const typeDefs = readFileSync("./schema.graphqls", "utf8"); diff --git a/src/loaders/repositoryDataLoader.ts b/src/loaders/RepositoryDataLoader.ts similarity index 98% rename from src/loaders/repositoryDataLoader.ts rename to src/loaders/RepositoryDataLoader.ts index ea5aa84..f229843 100644 --- a/src/loaders/repositoryDataLoader.ts +++ b/src/loaders/RepositoryDataLoader.ts @@ -1,4 +1,4 @@ -import { IOrderedStop, IRoute, IShuttle, IStop, ISystem, Repository } from "../repositories/repository"; +import { IOrderedStop, IRoute, IShuttle, IStop, ISystem, GetterSetterRepository } from "../repositories/GetterSetterRepository"; const timeout = 10000; const systemIdsToSupport = ["263"]; @@ -23,7 +23,7 @@ export class RepositoryDataLoader { private shouldBeRunning: boolean = false; constructor( - private repository: Repository, + private repository: GetterSetterRepository, ) {} public async start() { diff --git a/src/loaders/testData.ts b/src/loaders/loadTestData.ts similarity index 92% rename from src/loaders/testData.ts rename to src/loaders/loadTestData.ts index a346130..8fce9c9 100644 --- a/src/loaders/testData.ts +++ b/src/loaders/loadTestData.ts @@ -1,5 +1,5 @@ // Mock data -import { IEta, IOrderedStop, IRoute, IShuttle, IStop, ISystem, Repository } from "../repositories/repository"; +import { IEta, IOrderedStop, IRoute, IShuttle, IStop, ISystem, GetterSetterRepository } from "../repositories/GetterSetterRepository"; const systems: ISystem[] = [ { @@ -103,7 +103,7 @@ const etas: IEta[] = [ } ]; -export async function loadTestData(repository: Repository) { +export async function loadTestData(repository: GetterSetterRepository) { await Promise.all(systems.map(async (system) => { await repository.addOrUpdateSystem(system); })); diff --git a/src/repositories/repository.ts b/src/repositories/GetterSetterRepository.ts similarity index 96% rename from src/repositories/repository.ts rename to src/repositories/GetterSetterRepository.ts index 501c9dc..226bf64 100644 --- a/src/repositories/repository.ts +++ b/src/repositories/GetterSetterRepository.ts @@ -49,12 +49,12 @@ export interface IOrderedStop { } /** - * Repository interface for data derived from Passio API. + * GetterRepository interface for data derived from Passio API. * The repository is not designed to have write locks in place. * Objects passed from/to the repository should be treated * as disposable. */ -export interface Repository { +export interface GetterSetterRepository { // Getter methods getSystems(): Promise; diff --git a/src/repositories/unoptimizedInMemoryRepository.ts b/src/repositories/UnoptimizedInMemoryRepository.ts similarity index 96% rename from src/repositories/unoptimizedInMemoryRepository.ts rename to src/repositories/UnoptimizedInMemoryRepository.ts index e7f919f..ad47221 100644 --- a/src/repositories/unoptimizedInMemoryRepository.ts +++ b/src/repositories/UnoptimizedInMemoryRepository.ts @@ -1,11 +1,11 @@ -import { IEntityWithId, IEta, IOrderedStop, IRoute, IShuttle, IStop, ISystem, Repository } from "./repository"; +import { IEntityWithId, IEta, IOrderedStop, IRoute, IShuttle, IStop, ISystem, GetterSetterRepository } from "./GetterSetterRepository"; /** * An unoptimized in memory repository. * (I would optimize it with actual data structures, but I'm * switching to another data store later anyways) */ -export class UnoptimizedInMemoryRepository implements Repository { +export class UnoptimizedInMemoryRepository implements GetterSetterRepository { private systems: ISystem[] = []; private stops: IStop[] = []; private routes: IRoute[] = []; diff --git a/src/resolvers.ts b/src/resolvers.ts index 950bb6e..29cf156 100644 --- a/src/resolvers.ts +++ b/src/resolvers.ts @@ -1,5 +1,5 @@ import { Coordinates, Eta, OrderedStop, Resolvers, Route, Shuttle, Stop, System } from "./generated/graphql"; -import { ServerContext } from "./serverContext"; +import { ServerContext } from "./ServerContext"; export const resolvers: Resolvers = { Query: { diff --git a/src/serverContext.ts b/src/serverContext.ts deleted file mode 100644 index 895560c..0000000 --- a/src/serverContext.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Repository } from "./repositories/repository"; - -export interface ServerContext { - repository: Repository -} \ No newline at end of file