summaryrefslogtreecommitdiff
path: root/app/Http/RequestHandlers/RedirectNotePhp.php
diff options
context:
space:
mode:
authorGreg Roach <greg@subaqua.co.uk>2021-10-03 09:12:52 +0100
committerGreg Roach <greg@subaqua.co.uk>2021-10-03 09:12:52 +0100
commit81b729d3a9a6e0a0e8b96285d1ad7955d2d0c659 (patch)
tree252fde26f33da4f1c8fe6e9fd0a10539a3e1bf11 /app/Http/RequestHandlers/RedirectNotePhp.php
parent7a8937baa9778fb25d00b265364cd5f5f0d8beb9 (diff)
downloadwebtrees-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.php17
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);
}
}