From 0f8b9042954e7ae0a0fe9f08ad8ac3dcfe54adf2 Mon Sep 17 00:00:00 2001 From: Tim Slager Date: Thu, 1 Feb 2024 14:09:31 +0100 Subject: [PATCH] Added api endpoint to list specific book --- src/app/Http/Controllers/ItemController.php | 29 +++++++++++++++++++++ src/routes/api.php | 1 + 2 files changed, 30 insertions(+) diff --git a/src/app/Http/Controllers/ItemController.php b/src/app/Http/Controllers/ItemController.php index 7c1a5aa..21ff873 100644 --- a/src/app/Http/Controllers/ItemController.php +++ b/src/app/Http/Controllers/ItemController.php @@ -205,4 +205,33 @@ public function ApiStore(ApiStoreItemRequest $request) { $this->ReturnFullItem($item) ); } + + public function ApiGet($identifier) { + $library_pass = LibraryPass::where('barcode', Request()->bearerToken())->first(); + $user = User::where('id', $library_pass->user_id)->first(); + + if (!$user->can(Permissions::VIEW_ITEM->value) && Env::get('APP_ENV') != 'local') { + return $this->CommonResponse( + ResponseStatus::unauthorized, + 'Permission denied', + null + ); + } + + $item = Item::where('identifier', $identifier)->first(); + + if (!isset($item)) { + return $this->CommonResponse( + ResponseStatus::notFound, + 'Item not found', + null + ); + } + + return $this->CommonResponse( + ResponseStatus::success, + 'Item found', + $this->ReturnFullItem($item) + ); + } } diff --git a/src/routes/api.php b/src/routes/api.php index 7d42822..40e3bd9 100644 --- a/src/routes/api.php +++ b/src/routes/api.php @@ -19,5 +19,6 @@ Route::post('/item/search', [ItemController::class, 'search'])->middleware('api.auth'); Route::post('/users/search', [UserController::class, 'search'])->middleware('api.auth'); +Route::get('/item/{id}', [ItemController::class, 'ApiGet'])->middleware('api.auth'); Route::post('/item/store', [ItemController::class, 'ApiStore'])->middleware('api.auth'); Route::post('/item/grant', [GrantController::class, 'GrantItem'])->middleware('api.auth');