From d73fa28a5e561ad67457c581a276e8d0061aeee6 Mon Sep 17 00:00:00 2001 From: Himanshu Gunwant Date: Tue, 16 Sep 2025 13:35:55 +0530 Subject: [PATCH] add latest route --- Dockerfile | 3 +-- app/Http/Controllers/RequestController.php | 27 ++++++++++++++++++++++ app/Http/routes.php | 1 + 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 62f1cfd0..d0828100 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,8 +28,7 @@ USER www-data ADD --chown=www-data:www-data /composer.json /var/www/html ADD --chown=www-data:www-data /composer.lock /var/www/html -RUN composer global require hirak/prestissimo \ - && composer install --no-interaction --no-autoloader --no-dev --prefer-dist --no-scripts \ +RUN composer install --no-interaction --no-autoloader --no-dev --prefer-dist --no-scripts \ && rm -rf /home/www-data/.composer/cache ADD --chown=www-data:www-data /storage /var/www/html/storage diff --git a/app/Http/Controllers/RequestController.php b/app/Http/Controllers/RequestController.php index f0185269..0670e406 100644 --- a/app/Http/Controllers/RequestController.php +++ b/app/Http/Controllers/RequestController.php @@ -172,4 +172,31 @@ public function deleteByToken($tokenId) 'status' => (bool)$this->requests->deleteByToken($token) ]); } + + /** + * Get the latest request associated with a token. + * + * @param HttpRequest $httpRequest + * @param string $tokenId + * @return JsonResponse + * + * @throws NotFoundHttpException + */ + public function latest(HttpRequest $httpRequest, string $tokenId): JsonResponse + { + $token = $this->tokens->find($tokenId); + + $requests = $this->requests->all( + $token, + 1, + 1, + 'newest' + ); + + if (empty($requests)) { + throw new NotFoundHttpException('Request not found'); + } + + return new JsonResponse($requests[0]); + } } diff --git a/app/Http/routes.php b/app/Http/routes.php index d3c58c2e..e8d48043 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -16,6 +16,7 @@ $router->any('{tokenId}/{any}', 'RequestController@create'); $router->get('token/{tokenId}/requests', 'RequestController@all'); $router->get('token/{tokenId}/request/{requestId}', 'RequestController@find'); + $router->get('token/{tokenId}/request/latest', 'RequestController@latest'); $router->get('token/{tokenId}/request/{requestId}/raw', 'RequestController@raw'); $router->delete('token/{tokenId}/request/{requestId}', 'RequestController@delete'); $router->delete('token/{tokenId}/request', 'RequestController@deleteByToken');