From 23cdbe59a03373795dd5e911aa5684c074171ed7 Mon Sep 17 00:00:00 2001 From: flashwave Date: Fri, 3 Jan 2025 22:46:13 +0000 Subject: [PATCH] Simplify error messages. --- src/EEPROMErrorHandler.php | 10 ++++++++++ src/RoutingContext.php | 4 +++- src/Uploads/UploadsRoutes.php | 29 +++++------------------------ 3 files changed, 18 insertions(+), 25 deletions(-) create mode 100644 src/EEPROMErrorHandler.php diff --git a/src/EEPROMErrorHandler.php b/src/EEPROMErrorHandler.php new file mode 100644 index 0000000..48bf353 --- /dev/null +++ b/src/EEPROMErrorHandler.php @@ -0,0 +1,10 @@ +setContent(sprintf('%1$03d %2$s%1$03d %2$s', $code, $message)); + } +} diff --git a/src/RoutingContext.php b/src/RoutingContext.php index 6e10f6e..b48d0d5 100644 --- a/src/RoutingContext.php +++ b/src/RoutingContext.php @@ -9,7 +9,9 @@ class RoutingContext { private HttpRouter $router; public function __construct(private Config $config) { - $this->router = new HttpRouter; + $this->router = new HttpRouter( + errorHandler: new EEPROMErrorHandler, + ); $this->router->use('/', $this->middleware(...)); } diff --git a/src/Uploads/UploadsRoutes.php b/src/Uploads/UploadsRoutes.php index 64f2c0c..f7e9ae6 100644 --- a/src/Uploads/UploadsRoutes.php +++ b/src/Uploads/UploadsRoutes.php @@ -53,10 +53,8 @@ class UploadsRoutes implements RouteHandler { $uploadId = $this->uploadsCtx->uploads->resolveLegacyId($uploadId) ?? $uploadId; $uploadSecret = null; } else { - if(strlen($uploadId) < 5) { - $response->setContent('File not found.'); + if(strlen($uploadId) < 5) return 404; - } $uploadSecret = substr($uploadId, -4); $uploadId = XNumber::fromBase62(substr($uploadId, 0, -4)); @@ -65,17 +63,14 @@ class UploadsRoutes implements RouteHandler { try { $uploadInfo = $this->uploadsCtx->uploads->getUpload(uploadId: $uploadId, secret: $uploadSecret); } catch(RuntimeException $ex) { - $response->setContent('File not found.'); return 404; } try { $variantInfo = $this->uploadsCtx->uploads->getUploadVariant($uploadInfo, $uploadVariant); } catch(RuntimeException $ex) { - if($isOriginal) { - $response->setContent('Data is missing.'); + if($isOriginal) return 404; - } try { $poolInfo = $this->poolsCtx->pools->getPool($uploadInfo->poolId); @@ -94,15 +89,12 @@ class UploadsRoutes implements RouteHandler { } } } catch(RuntimeException $ex) { - $response->setContent('Original data is missing.'); return 404; } } - if(!isset($variantInfo)) { - $response->setContent('Variant not available.'); + if(!isset($variantInfo)) return 404; - } if($isOriginal) $this->uploadsCtx->uploads->updateUpload( @@ -114,20 +106,12 @@ class UploadsRoutes implements RouteHandler { try { $storageInfo = $this->storageCtx->records->getFile($variantInfo->fileId); } catch(RuntimeException $ex) { - $response->setContent('Data is missing.'); return 404; } $denyInfo = $this->denylistCtx->getDenylistEntry($storageInfo); - if($denyInfo !== null) { - $response->setContent(match($denyInfo->reason) { - DenylistReason::Copyright => 'File is unavailable for copyright reasons.', - DenylistReason::Rules => 'File was in violation of the rules.', - default => 'File was removed for reasons beyond understanding.', - }); - + if($denyInfo !== null) return $denyInfo->isCopyrightTakedown ? 451 : 410; - } if($isJson) return $this->uploadsCtx->convertToClientJsonV1($uploadInfo, $variantInfo, $storageInfo); @@ -273,10 +257,8 @@ class UploadsRoutes implements RouteHandler { $uploadId = $this->uploadsCtx->uploads->resolveLegacyId($uploadId) ?? $uploadId; $uploadSecret = null; } else { - if(strlen($uploadId) < 5) { - $response->setContent('File not found.'); + if(strlen($uploadId) < 5) return 404; - } $uploadSecret = substr($uploadId, -4); $uploadId = XNumber::fromBase62(substr($uploadId, 0, -4)); @@ -285,7 +267,6 @@ class UploadsRoutes implements RouteHandler { try { $uploadInfo = $this->uploadsCtx->uploads->getUpload(uploadId: $uploadId, secret: $uploadSecret); } catch(RuntimeException $ex) { - $response->setContent('File not found.'); return 404; }