diff --git a/app/Http/Controllers/Api/AssetsController.php b/app/Http/Controllers/Api/AssetsController.php index 2fa51dcd17..ac5185cf27 100644 --- a/app/Http/Controllers/Api/AssetsController.php +++ b/app/Http/Controllers/Api/AssetsController.php @@ -714,23 +714,32 @@ class AssetsController extends Controller * @since [v5.1.18] * @return JsonResponse */ - public function restore($assetId = null) + public function restore(Request $request, $assetId = null) { // Get asset information $asset = Asset::withTrashed()->find($assetId); $this->authorize('delete', $asset); + if (isset($asset->id)) { - // Restore the asset - Asset::withTrashed()->where('id', $assetId)->restore(); - $logaction = new Actionlog(); - $logaction->item_type = Asset::class; - $logaction->item_id = $asset->id; - $logaction->created_at = date("Y-m-d H:i:s"); - $logaction->user_id = Auth::user()->id; - $logaction->logaction('restored'); + if ($asset->deleted_at=='') { + $message = 'Asset was not deleted. No data was changed.'; - return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/hardware/message.restore.success'))); + } else { + + $message = trans('admin/hardware/message.restore.success'); + // Restore the asset + Asset::withTrashed()->where('id', $assetId)->restore(); + + $logaction = new Actionlog(); + $logaction->item_type = Asset::class; + $logaction->item_id = $asset->id; + $logaction->created_at = date("Y-m-d H:i:s"); + $logaction->user_id = Auth::user()->id; + $logaction->logaction('restored'); + } + + return response()->json(Helper::formatStandardApiResponse('success', (new AssetsTransformer)->transformAsset($asset, $request), $message)); } diff --git a/routes/api.php b/routes/api.php index de2e3b7588..921af2f1c3 100644 --- a/routes/api.php +++ b/routes/api.php @@ -483,7 +483,18 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:'.config('app. 'checkout' ] )->name('api.asset.checkout'); - }); + + Route::post('{asset_id}/restore', + [ + Api\AssetsController::class, + 'restore' + ] + )->name('api.assets.restore'); + + }); + + + Route::resource('hardware',