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;
}