mirror of
https://github.com/snipe/snipe-it.git
synced 2026-08-18 11:15:42 +00:00
Asset Models API: re-added restore endpoint
This commit is contained in:
@ -292,6 +292,30 @@ class AssetModelsController extends Controller
|
||||
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/models/message.delete.success')));
|
||||
}
|
||||
|
||||
/**
|
||||
* Restore a soft-deleted asset model.
|
||||
*/
|
||||
public function restore($id): JsonResponse
|
||||
{
|
||||
$this->authorize('delete', AssetModel::class);
|
||||
|
||||
if ($assetmodel = AssetModel::withTrashed()->find($id)) {
|
||||
|
||||
if ($assetmodel->deleted_at == '') {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.not_deleted', ['item_type' => trans('general.asset_model')])), 200);
|
||||
}
|
||||
|
||||
// The `restore` action_log entry is written by AssetModelObserver::restoring
|
||||
if ($assetmodel->restore()) {
|
||||
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/models/message.restore.success')), 200);
|
||||
}
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.could_not_restore', ['item_type' => trans('general.asset_model'), 'error' => $assetmodel->getErrors()->first()])), 200);
|
||||
}
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/models/message.does_not_exist')), 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a paginated collection for the select2 menus
|
||||
*
|
||||
|
||||
@ -927,6 +927,13 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'api-throttle:api']], fu
|
||||
'assets',
|
||||
]
|
||||
)->name('api.models.assets');
|
||||
|
||||
Route::post('{id}/restore',
|
||||
[
|
||||
Api\AssetModelsController::class,
|
||||
'restore',
|
||||
]
|
||||
)->name('api.models.restore');
|
||||
});
|
||||
|
||||
Route::resource('models',
|
||||
|
||||
Reference in New Issue
Block a user