From 20f7fe1ecc93e7d3c27980d77d84e767e8737a11 Mon Sep 17 00:00:00 2001 From: Delta5 Date: Tue, 21 Sep 2021 17:36:11 +0000 Subject: [PATCH 1/3] Add restore to users api endpoint --- app/Http/Controllers/Api/UsersController.php | 24 ++++++++++++++++++++ routes/api.php | 7 ++++++ 2 files changed, 31 insertions(+) diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index ff7d9ef86..26e98e4ab 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -474,4 +474,28 @@ class UsersController extends Controller { return (new UsersTransformer)->transformUser($request->user()); } + + /** + * Restore a soft-deleted user. + * + * @author [A. Gianotto] [] + * @param int $userId + * @since [v6.0.0] + * @return JsonResponse + */ + public function restore($userId = null) + { + // Get asset information + $user = User::withTrashed()->find($userId); + $this->authorize('delete', $user); + if (isset($user->id)) { + // Restore the user + User::withTrashed()->where('id', $userId)->restore(); + + return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/users/message.success.restored'))); + + + } + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.user_exists')), 200); + } } diff --git a/routes/api.php b/routes/api.php index 6f8d22a4d..2d3731b7c 100644 --- a/routes/api.php +++ b/routes/api.php @@ -896,6 +896,13 @@ Route::group(['prefix' => 'v1', 'middleware' => 'api'], function () { ] )->name('api.users.uploads'); + Route::post('{user}/restore', + [ + Api\UsersController::class, + 'restore' + ] + )->name('api.users.restore'); + }); Route::resource('users', From 59302e1d19cb51d31717bbc9bc6fcfdd1fcfa376 Mon Sep 17 00:00:00 2001 From: Delta5 Date: Tue, 21 Sep 2021 17:36:11 +0000 Subject: [PATCH 2/3] Add restore to users api endpoint --- app/Http/Controllers/Api/UsersController.php | 22 ++++++++++++++++++++ routes/api.php | 7 +++++++ 2 files changed, 29 insertions(+) diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index ff7d9ef86..f2529e190 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -474,4 +474,26 @@ class UsersController extends Controller { return (new UsersTransformer)->transformUser($request->user()); } + + /** + * Restore a soft-deleted user. + * + * @author [E. Taylor] [] + * @param int $userId + * @since [v6.0.0] + * @return JsonResponse + */ + public function restore($userId = null) + { + // Get asset information + $user = User::withTrashed()->find($userId); + $this->authorize('delete', $user); + if (isset($user->id)) { + // Restore the user + User::withTrashed()->where('id', $userId)->restore(); + + return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/users/message.success.restored'))); + } + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.user_exists')), 200); + } } diff --git a/routes/api.php b/routes/api.php index 6f8d22a4d..2d3731b7c 100644 --- a/routes/api.php +++ b/routes/api.php @@ -896,6 +896,13 @@ Route::group(['prefix' => 'v1', 'middleware' => 'api'], function () { ] )->name('api.users.uploads'); + Route::post('{user}/restore', + [ + Api\UsersController::class, + 'restore' + ] + )->name('api.users.restore'); + }); Route::resource('users', From c8c3c7fbbdfe3b878a2923eb305eb971898e51ba Mon Sep 17 00:00:00 2001 From: Delta5 Date: Tue, 21 Sep 2021 19:45:18 +0000 Subject: [PATCH 3/3] Fixed issue with incorrect error message --- app/Http/Controllers/Api/UsersController.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index f2529e190..a3109f5d2 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -494,6 +494,8 @@ class UsersController extends Controller return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/users/message.success.restored'))); } - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.user_exists')), 200); + + $id = $userId; + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.user_not_found', compact('id'))), 200); } }