From 0617480f7385fdaf56143b1c2e7c761e89529e9d Mon Sep 17 00:00:00 2001 From: Nathan Butler Date: Thu, 30 Jun 2022 09:23:52 +1000 Subject: [PATCH] Asset checkinbytag now consistent with existingAPI This is a non-breaking change to the checkinbytag endpoint to bring it inline with the usage/formatting of the other bytag endpoints that currently exist - using the URL path to define the asset_tag instead of passing it through as a url query. Both methods will work, but the URL Path method will take precidence if it is used (the query will be ignored if included) --- app/Http/Controllers/Api/AssetsController.php | 11 ++++++---- routes/api.php | 21 ++++++++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/app/Http/Controllers/Api/AssetsController.php b/app/Http/Controllers/Api/AssetsController.php index ebb19159dd..fbc56d21ec 100644 --- a/app/Http/Controllers/Api/AssetsController.php +++ b/app/Http/Controllers/Api/AssetsController.php @@ -907,18 +907,21 @@ class AssetsController extends Controller * @since [v6.0] * @return JsonResponse */ - public function checkinByTag(Request $request) + public function checkinByTag(Request $request, $tag = null) { $this->authorize('checkin', Asset::class); - $asset = Asset::where('asset_tag', $request->input('asset_tag'))->first(); + if(null == $tag && null !== ($request->input('asset_tag'))) { + $tag = $request->input('asset_tag'); + } + $asset = Asset::where('asset_tag', $tag)->first(); if($asset) { return $this->checkin($request, $asset->id); } return response()->json(Helper::formatStandardApiResponse('error', [ - 'asset'=> e($request->input('asset_tag')) - ], 'Asset with tag '.e($request->input('asset_tag')).' not found')); + 'asset'=> e($tag) + ], 'Asset with tag '.e($tag).' not found')); } diff --git a/routes/api.php b/routes/api.php index da2e92ee10..af5b797eb0 100644 --- a/routes/api.php +++ b/routes/api.php @@ -469,6 +469,20 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi ] )->name('api.assets.checkout.bytag'); + Route::post('bytag/{any}/checkin', + [ + Api\AssetsController::class, + 'checkinbytag' + ] + )->name('api.asset.checkinbytagPath'); + + Route::post('checkinbytag', + [ + Api\AssetsController::class, + 'checkinbytag' + ] + )->name('api.asset.checkinbytag'); + Route::get('byserial/{any}', [ Api\AssetsController::class, @@ -498,13 +512,6 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi ] )->name('api.asset.checkin'); - Route::post('checkinbytag', - [ - Api\AssetsController::class, - 'checkinbytag' - ] - )->name('api.asset.checkinbytag'); - Route::post('{id}/checkout', [ Api\AssetsController::class,