From 0f5384fb337d50c0db2291f2666b2d707dfd2242 Mon Sep 17 00:00:00 2001 From: = <=> Date: Fri, 11 Apr 2025 16:04:33 +0300 Subject: [PATCH] upgrade done, need testing --- src/Action.php | 16 ++++++++-------- src/Api.php | 15 +++++++-------- src/Contracts/Endpoint.php | 4 +++- src/Contracts/Token.php | 4 +++- src/Enums/Authorization.php | 11 +++-------- src/Enums/Call.php | 9 +++++++++ src/Enums/Calls.php | 11 ----------- src/Enums/Method.php | 11 +++++++++++ src/Enums/Methods.php | 16 ---------------- src/Enums/ResponseCode.php | 31 +++++++++++++++++++++++++++++++ src/Enums/ResponseCodes.php | 22 ---------------------- src/Http/Middleware/ApiLogger.php | 4 ++-- 12 files changed, 77 insertions(+), 77 deletions(-) create mode 100644 src/Enums/Call.php delete mode 100644 src/Enums/Calls.php create mode 100644 src/Enums/Method.php delete mode 100644 src/Enums/Methods.php create mode 100644 src/Enums/ResponseCode.php delete mode 100644 src/Enums/ResponseCodes.php diff --git a/src/Action.php b/src/Action.php index 12c42e5..48c6326 100644 --- a/src/Action.php +++ b/src/Action.php @@ -7,7 +7,7 @@ use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; use LaravelEnso\Api\Contracts\Endpoint; -use LaravelEnso\Api\Enums\Calls; +use LaravelEnso\Api\Enums\Call; use LaravelEnso\Api\Exceptions\Api as Exception; use LaravelEnso\Api\Exceptions\Handler; use LaravelEnso\Api\Models\Log; @@ -62,13 +62,13 @@ abstract protected function endpoint(): Endpoint; private function log(Response $response, string $duration): void { Log::create([ - 'user_id' => Auth::user()?->id, - 'url' => $this->endpoint()->url(), - 'route' => Route::currentRouteName(), - 'method' => $this->endpoint()->method(), - 'status' => $response->status(), - 'try' => $this->api->tries(), - 'type' => Calls::Outbound, + 'user_id' => Auth::user()?->id, + 'url' => $this->endpoint()->url(), + 'route' => Route::currentRouteName(), + 'method' => $this->endpoint()->method(), + 'status' => $response->status(), + 'try' => $this->api->tries(), + 'type' => Call::Outbound->value, 'duration' => $duration, ]); } diff --git a/src/Api.php b/src/Api.php index 6cde2c7..2815a79 100644 --- a/src/Api.php +++ b/src/Api.php @@ -15,14 +15,13 @@ use LaravelEnso\Api\Contracts\Retry; use LaravelEnso\Api\Contracts\Timeout; use LaravelEnso\Api\Contracts\UsesAuth; -use LaravelEnso\Api\Enums\Authorization; -use LaravelEnso\Api\Enums\Methods; -use LaravelEnso\Api\Enums\ResponseCodes; +use LaravelEnso\Api\Enums\Method; +use LaravelEnso\Api\Enums\ResponseCode; class Api { protected int $tries; - protected string $method; + protected Method $method; public function __construct(protected Endpoint $endpoint) { @@ -88,8 +87,8 @@ protected function headers(): array if ($this->endpoint instanceof UsesAuth) { $token = $this->endpoint->tokenProvider()->current(); - $type = Authorization::get($this->endpoint->tokenProvider()->type()); - $headers['Authorization'] = "{$type} {$token}"; + $type = $this->endpoint->tokenProvider()->type(); + $headers['Authorization'] = "{$type->value} {$token}"; } return $headers; @@ -104,13 +103,13 @@ protected function shouldRetry(): bool protected function possibleTokenExpiration(Response $response): bool { return $this->endpoint instanceof UsesAuth - && ResponseCodes::needsAuth($response->status()) + && ResponseCode::from($response->status())->needsAuth() && $this->tries === 1; } protected function body(): string|array|null { - if ($this->method === Methods::post) { + if ($this->method === Method::post) { return $this->endpoint->body(); } diff --git a/src/Contracts/Endpoint.php b/src/Contracts/Endpoint.php index 2a8392b..1f6f96b 100644 --- a/src/Contracts/Endpoint.php +++ b/src/Contracts/Endpoint.php @@ -2,9 +2,11 @@ namespace LaravelEnso\Api\Contracts; +use LaravelEnso\Api\Enums\Method; + interface Endpoint { - public function method(): string; + public function method(): Method; public function url(): string; diff --git a/src/Contracts/Token.php b/src/Contracts/Token.php index e2ba524..f631d48 100644 --- a/src/Contracts/Token.php +++ b/src/Contracts/Token.php @@ -2,9 +2,11 @@ namespace LaravelEnso\Api\Contracts; +use LaravelEnso\Api\Enums\Authorization; + interface Token { - public function type(): string; + public function type(): Authorization; public function auth(): self; diff --git a/src/Enums/Authorization.php b/src/Enums/Authorization.php index 9e32120..eae3bbe 100644 --- a/src/Enums/Authorization.php +++ b/src/Enums/Authorization.php @@ -2,13 +2,8 @@ namespace LaravelEnso\Api\Enums; -use LaravelEnso\Enums\Services\Enum; - -class Authorization extends Enum +enum Authorization :string { - protected static bool $localisation = false; - protected static bool $validatesKeys = true; - - public const Basic = 'Basic'; - public const Bearer = 'Bearer'; + case Basic = 'Basic'; + case Bearer = 'Bearer'; } diff --git a/src/Enums/Call.php b/src/Enums/Call.php new file mode 100644 index 0000000..3e53375 --- /dev/null +++ b/src/Enums/Call.php @@ -0,0 +1,9 @@ + false, + self::Created => false, + self::Unauthorized => true, + self::Forbidden => true, + self::NotFound => false, + self::UnprocessableEntity => false, + }; + } +} diff --git a/src/Enums/ResponseCodes.php b/src/Enums/ResponseCodes.php deleted file mode 100644 index 992c502..0000000 --- a/src/Enums/ResponseCodes.php +++ /dev/null @@ -1,22 +0,0 @@ - $request->route()->getName(), 'method' => $request->method(), 'status' => $response->status(), - 'type' => Calls::Inbound, + 'type' => Call::Inbound->value, 'duration' => Decimals::sub(microtime(true), LARAVEL_START), ]);