fox/app/Http/Controllers/FoxPlacesController.php

36 lines
1.0 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Services\PlacesService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
/**
* Fallback-Endpoint wenn Overpass tot ist - Google Places liefert dann
* vergleichbare POIs (mit Bewertung, dafür weniger).
*/
class FoxPlacesController
{
public function __invoke(Request $request, PlacesService $places): JsonResponse
{
$request->validate([
'category' => 'required|string|max:40',
'lat' => 'required|numeric',
'lng' => 'required|numeric',
'radius' => 'sometimes|integer|min:100|max:50000',
'cuisine' => 'nullable|string|max:40',
]);
$pois = $places->nearby(
$request->string('category')->toString(),
(float) $request->input('lat'),
(float) $request->input('lng'),
(int) $request->input('radius', 2000),
$request->input('cuisine'),
);
return response()->json(['pois' => $pois, 'source' => 'google_places']);
}
}