. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Http\RequestHandlers; use Fisharebest\Webtrees\Services\MapDataService; use Illuminate\Database\Capsule\Manager as DB; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; use function redirect; use function route; /** * Delete a place location from the control panel. */ class MapDataDelete implements RequestHandlerInterface { /** @var MapDataService */ private $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 { $place_id = (int) $request->getQueryParams()['place_id']; $place = $this->map_data_service->findById($place_id); $parent = $place->parent(); if ($place_id !== 0) { $this->map_data_service->deleteRecursively($place_id); } $url = route(MapDataList::class, ['parent_id' => $parent->id()]); return redirect($url); } }