3
0
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:
snipe
2026-08-17 12:29:09 +01:00
parent e6384568db
commit bf70b0c269
2 changed files with 31 additions and 0 deletions

View File

@ -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
*

View File

@ -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',