diff options
| author | Greg Roach <greg@subaqua.co.uk> | 2021-10-03 09:12:52 +0100 |
|---|---|---|
| committer | Greg Roach <greg@subaqua.co.uk> | 2021-10-03 09:12:52 +0100 |
| commit | 81b729d3a9a6e0a0e8b96285d1ad7955d2d0c659 (patch) | |
| tree | 252fde26f33da4f1c8fe6e9fd0a10539a3e1bf11 /app/Http/RequestHandlers/RedirectNotePhp.php | |
| parent | 7a8937baa9778fb25d00b265364cd5f5f0d8beb9 (diff) | |
| download | webtrees-81b729d3a9a6e0a0e8b96285d1ad7955d2d0c659.tar.gz webtrees-81b729d3a9a6e0a0e8b96285d1ad7955d2d0c659.tar.bz2 webtrees-81b729d3a9a6e0a0e8b96285d1ad7955d2d0c659.zip | |
Refactor HTTP exceptions
Diffstat (limited to 'app/Http/RequestHandlers/RedirectNotePhp.php')
| -rw-r--r-- | app/Http/RequestHandlers/RedirectNotePhp.php | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/app/Http/RequestHandlers/RedirectNotePhp.php b/app/Http/RequestHandlers/RedirectNotePhp.php index 49af88720d..7006e60dcb 100644 --- a/app/Http/RequestHandlers/RedirectNotePhp.php +++ b/app/Http/RequestHandlers/RedirectNotePhp.php @@ -20,12 +20,13 @@ declare(strict_types=1); namespace Fisharebest\Webtrees\Http\RequestHandlers; use Fig\Http\Message\StatusCodeInterface; -use Fisharebest\Webtrees\Exceptions\NoteNotFoundException; +use Fisharebest\Webtrees\Http\Exceptions\HttpNotFoundException; +use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Note; use Fisharebest\Webtrees\Registry; use Fisharebest\Webtrees\Services\TreeService; -use Fisharebest\Webtrees\Site; use Fisharebest\Webtrees\Tree; +use Fisharebest\Webtrees\Validator; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; @@ -51,13 +52,13 @@ class RedirectNotePhp implements RequestHandlerInterface * @param ServerRequestInterface $request * * @return ResponseInterface + * @throws HttpNotFoundException */ public function handle(ServerRequestInterface $request): ResponseInterface { - $query = $request->getQueryParams(); - $ged = $query['ged'] ?? Site::getPreference('DEFAULT_GEDCOM'); - $nid = $query['nid'] ?? ''; - $tree = $this->tree_service->all()->get($ged); + $ged = Validator::queryParams($request)->requiredString('ged'); + $nid = Validator::queryParams($request)->isXref()->requiredString('nid'); + $tree = $this->tree_service->all()->get($ged); if ($tree instanceof Tree) { $note = Registry::noteFactory()->make($nid, $tree); @@ -67,6 +68,8 @@ class RedirectNotePhp implements RequestHandlerInterface } } - throw new NoteNotFoundException(); + $message = I18N::translate('This note does not exist or you do not have permission to view it.'); + + throw new HttpNotFoundException($message); } } |
