import { Resolvers } from "../generated/graphql"; import { ServerContext } from "../ServerContext"; export const ParkingSystemResolvers: Resolvers = { ParkingSystem: { parkingStructures: async (parent, _args, contextValue, _info) => { const system = contextValue.findSystemById(parent.systemId); if (!system) { return []; } const parkingRepository = system.parkingRepository; if (!parkingRepository) return []; const parkingStructures = await parkingRepository.getParkingStructures(); return parkingStructures.map((structure) => { return { ...structure, systemId: parent.systemId }; }); }, parkingStructure: async (parent, args, contextValue, _info) => { if (!args.id) return null; const system = contextValue.findSystemById(parent.systemId); if (!system) { return null; } const parkingRepository = system.parkingRepository; if (!parkingRepository) return null; const parkingStructure = await parkingRepository.getParkingStructureById(args.id); return parkingStructure ? { ...parkingStructure, systemId: parent.systemId, } : null; }, } }