Spaces:
Running
Running
File size: 3,209 Bytes
907b200 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | <?php
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\Routing\Exception\RouteNotFoundException;
use Illuminate\Auth\AuthenticationException;
use Illuminate\Validation\ValidationException;
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__ . '/../routes/web.php',
api: __DIR__ . '/../routes/api.php',
commands: __DIR__ . '/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware): void {
$middleware->trustProxies(at: '*');
$middleware->alias([
'job.owner' => App\Http\Middleware\CheckJobOwnership::class,
'subscribed' => \App\Http\Middleware\EnsureActiveSubscription::class,
'pro' => \App\Http\Middleware\EnsureProPlan::class,
'max' => \App\Http\Middleware\EnsureMaxPlan::class,
]);
})
->withExceptions(function (Exceptions $exceptions): void {
// NotFoundHttpException
$exceptions->renderable(function (NotFoundHttpException $e, $request) {
if ($request->is('api/*')) {
return response()->json([
'success' => false,
'message' => $e->getMessage() ?: 'Resource not found'
], 404);
}
});
// AuthenticationException
$exceptions->renderable(function (AuthenticationException $e, $request) {
if ($request->is('api/*')) {
return response()->json([
'success' => false,
'message' => $e->getMessage() ?: 'Unauthenticated'
], 401);
}
});
// RouteNotFoundException (auth middleware redirecting to non-existent login route)
$exceptions->renderable(function (RouteNotFoundException $e, $request) {
if ($request->is('api/*')) {
return response()->json([
'success' => false,
'message' => 'Unauthenticated'
], 401);
}
});
// ValidationException
$exceptions->renderable(function (ValidationException $e, $request) {
if ($request->is('api/*')) {
return response()->json([
'success' => false,
'message' => $e->getMessage() ?: 'Validation error',
'errors' => $e->errors()
], 422);
}
});
// Catch-all for any other exceptions
$exceptions->renderable(function (\Throwable $e, $request) {
if ($request->is('api/*')) {
$status = method_exists($e, 'getStatusCode') && $e instanceof HttpException ? $e->getStatusCode() : 500;
return response()->json([
'success' => false,
'message' => $e->getMessage() ?: 'Server Error'
], $status);
}
});
})->create();
|