Initial commit

This commit is contained in:
James
2024-12-03 21:27:44 +01:00
commit 613e1a767c
125 changed files with 16298 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
<?php
declare(strict_types=1);
namespace App\Exceptions;
use Exception;
use Illuminate\Contracts\Support\Responsable;
use Illuminate\Http\JsonResponse;
use Throwable;
class ApiException extends Exception implements Responsable
{
public readonly string $customCode;
public readonly int $status;
public readonly bool $silenced;
public function __construct(
string $message,
string $code,
?int $status = null,
bool $silenced = false,
?Throwable $previous = null
) {
parent::__construct($message, 0, $previous);
$this->silenced = $silenced;
$this->customCode = $code;
$this->status = $status ?? 400;
}
public function toResponse($request): JsonResponse
{
return response()->json([
'code' => $this->customCode,
'message' => $this->message,
], $this->status);
}
}

View File

@@ -0,0 +1,15 @@
<?php
declare(strict_types=1);
namespace App\Exceptions;
use App\Models\Wallet;
class InsufficientBalance extends ApiException
{
public function __construct(public readonly Wallet $wallet, public readonly int $amount)
{
parent::__construct(message: 'Insufficient balance in wallet.', code: 'INSUFFICIENT_BALANCE', status: 400);
}
}