import { Coordinates, Resolvers } from "../generated/graphql"; import { ServerContext } from "../ServerContext"; export const SystemResolvers: Resolvers = { System: { routes: async (parent, args, contextValue, info) => { return await contextValue.shuttleRepository.getRoutesBySystemId(parent.id); }, stops: async (parent, args, contextValue, info) => { return await contextValue.shuttleRepository.getStopsBySystemId(parent.id); }, stop: async (parent, args, contextValue, info) => { if (!args.id) return null; const stop = await contextValue.shuttleRepository.getStopById(args.id); if (stop === null) return null; if (stop.systemId !== parent.id) return null; return { id: stop.id, name: stop.name, coordinates: stop.coordinates as Coordinates, }; }, route: async (parent, args, contextValue, info) => { if (!args.id) return null; const route = await contextValue.shuttleRepository.getRouteById(args.id); if (route === null) return null; if (route.systemId !== parent.id) return null; return { color: route.color, id: route.id, name: route.name, polylineCoordinates: route.polylineCoordinates as Coordinates[], }; }, shuttle: async (parent, args, contextValue, info) => { if (!args.id) return null; const shuttle = await contextValue.shuttleRepository.getShuttleById(args.id); if (shuttle === null) return null; if (shuttle.systemId !== parent.id) return null; return shuttle; }, shuttles: async (parent, args, contextValue, info) => { return await contextValue.shuttleRepository.getShuttlesBySystemId(parent.id); } }, }