const routing = require('../services/routing'); const logger = require('../utils/logger'); async function getDirections(req, res) { try { const { startLat, startLng, endLat, endLng, profile } = req.query; // Validate required parameters if (!startLat || !startLng || !endLat || !endLng) { return res.status(400).json({ error: 'Missing required parameters: startLat, startLng, endLat, endLng' }); } const start = { lat: parseFloat(startLat), lng: parseFloat(startLng) }; const end = { lat: parseFloat(endLat), lng: parseFloat(endLng) }; // Validate coordinates if (isNaN(start.lat) || isNaN(start.lng) || isNaN(end.lat) || isNaN(end.lng)) { return res.status(400).json({ error: 'Invalid coordinates' }); } // Validate profile const validProfiles = ['driving', 'walking', 'cycling']; const routeProfile = validProfiles.includes(profile) ? profile : 'driving'; const directions = await routing.getDirections( start.lat, start.lng, end.lat, end.lng, routeProfile ); res.json({ success: true, profile: routeProfile, route: directions }); } catch (error) { logger.error('Directions request failed', { error: error.message }); res.status(500).json({ success: false, error: error.message }); } } module.exports = { getDirections };