fox/app/Http/Controllers/FoxRouteController.php

36 lines
1016 B
PHP

<?php
namespace App\Http\Controllers;
use App\Services\RouteService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
/**
* Browser POSTet origin + destination + mode, Backend ruft Google Directions
* mit dem API-Key auf und gibt fertige GeoJSON + Distanz/Dauer zurück.
*/
class FoxRouteController
{
public function __invoke(Request $request, RouteService $routes): JsonResponse
{
$request->validate([
'origin' => 'required|string|max:200',
'destination' => 'required|string|max:200',
'mode' => 'sometimes|string|in:driving,walking,bicycling,transit',
]);
$route = $routes->route(
$request->string('origin')->toString(),
$request->string('destination')->toString(),
$request->string('mode', 'driving')->toString(),
);
if (! $route) {
return response()->json(['error' => 'Keine Route gefunden'], 404);
}
return response()->json($route);
}
}