...
 
Commits (2)
......@@ -11,6 +11,7 @@ use Minds\Core\Di\Di;
use Minds\Core\Log\Logger;
use Minds\Core\Router\Exceptions\ForbiddenException;
use Minds\Core\Router\Exceptions\UnauthorizedException;
use Minds\Core\Router\Exceptions\UnverifiedEmailException;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
......@@ -47,10 +48,15 @@ class ErrorHandlerMiddleware implements MiddlewareInterface
{
$message = 'Internal Server Error';
$status = 500;
$data = [];
try {
return $handler
->handle($request);
} catch (UnverifiedEmailException $e) {
$message = $e->getMessage();
$status = 403;
$data = [ 'must_verify' => true ];
} catch (UnauthorizedException $e) {
$message = 'Unauthorized';
$status = 401;
......@@ -68,10 +74,10 @@ class ErrorHandlerMiddleware implements MiddlewareInterface
case 'json':
default:
return new JsonResponse([
return new JsonResponse(array_merge($data, [
'status' => 'error',
'message' => $message,
], $status);
]), $status);
}
}
}
......@@ -162,8 +162,8 @@ class Router
header('HTTP/1.1 403 Forbidden', true, 403);
echo json_encode([
'error' => $e->getMessage(),
'code' => 403,
'status' => 'error',
'message' => $e->getMessage(),
'must_verify' => true
]);
......