Updated the condition to ensure JSON responses are rendered for both 'api/*' and 'api' requests.
35 lines
1 KiB
PHP
35 lines
1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use Illuminate\Foundation\Configuration\Exceptions;
|
|
use Illuminate\Http\Request;
|
|
use Presentation\Api\Exceptions\ApiExceptionDispatcher;
|
|
use Presentation\Web\Exceptions\WebExceptionRenderer;
|
|
use Sentry\State\HubInterface;
|
|
|
|
return function (Exceptions $exceptions): void {
|
|
$exceptions->reportable(function (\Throwable $e): void {
|
|
if (app()->bound(HubInterface::class)) {
|
|
resolve(HubInterface::class)->captureException($e);
|
|
}
|
|
});
|
|
|
|
$exceptions->render(function (\Throwable $e, Request $request) {
|
|
$apiDispatcher = resolve(ApiExceptionDispatcher::class);
|
|
if ($apiResponse = $apiDispatcher->render($e, $request)) {
|
|
return $apiResponse;
|
|
}
|
|
|
|
$webRenderer = resolve(WebExceptionRenderer::class);
|
|
if ($webResponse = $webRenderer->render($e, $request)) {
|
|
return $webResponse;
|
|
}
|
|
|
|
return null;
|
|
});
|
|
|
|
$exceptions->shouldRenderJsonWhen(
|
|
fn (Request $request) => $request->is('api/*', 'api'),
|
|
);
|
|
};
|