diff --git a/src/resolvers/SystemResolvers.ts b/src/resolvers/SystemResolvers.ts index 4f5205f..0dc568d 100644 --- a/src/resolvers/SystemResolvers.ts +++ b/src/resolvers/SystemResolvers.ts @@ -78,11 +78,27 @@ export const SystemResolvers: Resolvers = { return await system.shuttleRepository.getShuttles(); }, - parkingStructures: async (_parent, _args, _contextValue, _info) => { - return []; + parkingStructures: async (parent, _args, contextValue, _info) => { + const system = contextValue.findSystemById(parent.id); + if (!system) { + return []; + } + const parkingRepository = system.parkingRepository; + if (!parkingRepository) return []; + + return await parkingRepository.getParkingStructures(); }, - parkingStructure: async (_parent, _args, _contextValue, _info) => { - return null; + parkingStructure: async (parent, args, contextValue, info) => { + if (!args.id) return null; + + const system = contextValue.findSystemById(parent.id); + if (!system) { + return null; + } + const parkingRepository = system.parkingRepository; + if (!parkingRepository) return null; + + return await parkingRepository.getParkingStructureById(args.id); }, }, } diff --git a/test/resolvers/SystemResolverTests.test.ts b/test/resolvers/SystemResolverTests.test.ts index 8eab06a..29ff221 100644 --- a/test/resolvers/SystemResolverTests.test.ts +++ b/test/resolvers/SystemResolverTests.test.ts @@ -356,7 +356,7 @@ describe("SystemResolvers", () => { expect(parkingStructures).toHaveLength(0); }); - it("returns null if there is no parking data available", async () => { + it("returns a blank array if there is no parking data available", async () => { context.systems[0].parkingTimedDataLoader = null; context.systems[0].parkingRepository = null; @@ -365,7 +365,7 @@ describe("SystemResolvers", () => { assert(response.body.kind === "single"); expect(response.body.singleResult.errors).toBeUndefined(); const parkingStructures = (response.body.singleResult.data as any).system.parkingStructures; - expect(parkingStructures).toBeNull(); + expect(parkingStructures).toHaveLength(0); }); });