. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Http\RequestHandlers; use Fisharebest\Webtrees\Services\MapDataService; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; use function redirect; use function route; /** * Delete a location from the control panel. */ class MapDataDelete implements RequestHandlerInterface { private MapDataService $map_data_service; /** * Dependency injection. * * @param MapDataService $map_data_service */ public function __construct(MapDataService $map_data_service) { $this->map_data_service = $map_data_service; } /** * @param ServerRequestInterface $request * * @return ResponseInterface */ public function handle(ServerRequestInterface $request): ResponseInterface { $location_id = (int) $request->getAttribute('location_id'); $place = $this->map_data_service->findById($location_id); $this->map_data_service->deleteRecursively($location_id); $url = route(MapDataList::class, ['parent_id' => $place->parent()->id()]); return redirect($url); } }