From 5871077f03b7ec9065310e17cf088cfe02ea551f Mon Sep 17 00:00:00 2001 From: Awilum Date: Sat, 14 Aug 2021 13:37:27 +0300 Subject: [PATCH] feat(endpoints): update Images endpoints logic #565 --- src/flextype/core/Endpoints/Images.php | 41 +++++++------------------- 1 file changed, 10 insertions(+), 31 deletions(-) diff --git a/src/flextype/core/Endpoints/Images.php b/src/flextype/core/Endpoints/Images.php index c6cabebb..0ec86bbb 100644 --- a/src/flextype/core/Endpoints/Images.php +++ b/src/flextype/core/Endpoints/Images.php @@ -12,7 +12,7 @@ namespace Flextype\Endpoints; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; -class Images extends Endpoints +class Images extends Api { /** * Fetch image. @@ -25,44 +25,23 @@ class Images extends Endpoints */ public function fetch(string $path, ServerRequestInterface $request, ResponseInterface $response): ResponseInterface { - // Get Query Params - $queryParams = $request->getQueryParams(); - - // Check is utils api enabled - if (! registry()->get('flextype.settings.api.images.enabled')) { - return $this->getApiResponse($response, $this->getStatusCodeMessage(400), 400); - } - - // Check is token param exists - if (! isset($queryParams['token'])) { - return $this->getApiResponse($response, $this->getStatusCodeMessage(400), 400); - } - - // Check is token exists - if (! tokens()->has($queryParams['token'])) { - return $this->getApiResponse($response, $this->getStatusCodeMessage(401), 401); - } - - // Fetch token - $tokenData = tokens()->fetch($queryParams['token']); - - // Check token state and limit_calls + // Validate Api Request if ( - $tokenData['state'] === 'disabled' || - ($tokenData['limit_calls'] !== 0 && $tokenData['calls'] >= $tokenData['limit_calls']) + count($result = $this->validateApiRequest([ + 'request' => $request, + 'api' => 'images', + 'params' => ['token'], + ])) > 0 ) { - return $this->getApiResponse($response, $this->getStatusCodeMessage(400), 400); + return $this->getApiResponse($response, $this->getStatusCodeMessage($result['http_status_code']), $result['http_status_code']); } - - // Update token calls - tokens()->update($queryParams['token'], ['calls' => $tokenData['calls'] + 1]); - + // Check is file exists if (! filesystem()->file(PATH['project'] . '/uploads/' . $path)->exists()) { return $this->getApiResponse($response, $this->getStatusCodeMessage(404), 404); } // Return image response - return container()->get('images')->getImageResponse($path, $queryParams); + return container()->get('images')->getImageResponse($path, $request->getQueryParams()); } }