diff --git a/app/Api/V1/Controllers/todo-Destruction/DestroyController.php b/app/Api/V1/Controllers/Data/DestroyController.php similarity index 97% rename from app/Api/V1/Controllers/todo-Destruction/DestroyController.php rename to app/Api/V1/Controllers/Data/DestroyController.php index 830cda1dc4..df724abe71 100644 --- a/app/Api/V1/Controllers/todo-Destruction/DestroyController.php +++ b/app/Api/V1/Controllers/Data/DestroyController.php @@ -1,7 +1,7 @@ getObjects(); diff --git a/app/Api/V1/Controllers/todo/UserController.php b/app/Api/V1/Controllers/System/UserController.php similarity index 93% rename from app/Api/V1/Controllers/todo/UserController.php rename to app/Api/V1/Controllers/System/UserController.php index c294deb019..75fca8d115 100644 --- a/app/Api/V1/Controllers/todo/UserController.php +++ b/app/Api/V1/Controllers/System/UserController.php @@ -1,8 +1,8 @@ user(); + if($admin->id === $user->id) { + return response()->json([], 500); + } + if ($admin->id !== $user->id && $this->repository->hasRole($admin, 'owner')) { $this->repository->destroy($user); diff --git a/app/Api/V1/Requests/todo/DataDestroyRequest.php b/app/Api/V1/Requests/Data/DestroyRequest.php similarity index 93% rename from app/Api/V1/Requests/todo/DataDestroyRequest.php rename to app/Api/V1/Requests/Data/DestroyRequest.php index f252846adf..2bc93dbb56 100644 --- a/app/Api/V1/Requests/todo/DataDestroyRequest.php +++ b/app/Api/V1/Requests/Data/DestroyRequest.php @@ -21,16 +21,16 @@ declare(strict_types=1); -namespace FireflyIII\Api\V1\Requests; +namespace FireflyIII\Api\V1\Requests\Data; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; /** - * Class DataDestroyRequest + * Class DestroyRequest */ -class DataDestroyRequest extends FormRequest +class DestroyRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin; diff --git a/app/Api/V1/Requests/todo/UserStoreRequest.php b/app/Api/V1/Requests/System/UserStoreRequest.php similarity index 95% rename from app/Api/V1/Requests/todo/UserStoreRequest.php rename to app/Api/V1/Requests/System/UserStoreRequest.php index 0938a37d15..dc7c4603e2 100644 --- a/app/Api/V1/Requests/todo/UserStoreRequest.php +++ b/app/Api/V1/Requests/System/UserStoreRequest.php @@ -1,8 +1,8 @@ 'FireflyIII\Api\V1\Controllers\Data\Export', 'prefix' => 'data/export', 'as' => 'api.v1.data.export.',], @@ -83,6 +83,14 @@ Route::group( Route::get('transactions', ['uses' => 'ExportController@transactions', 'as' => 'transactions']); } ); +// Destroy data API route +Route::group( + ['namespace' => 'FireflyIII\Api\V1\Controllers\Data', 'prefix' => 'data/destroy', + 'as' => 'api.v1.data.',], + static function () { + Route::delete('', ['uses' => 'DestroyController@destroy', 'as' => 'destroy']); + } +); /** * INSIGHTS ROUTES @@ -488,7 +496,7 @@ Route::group( } ); -// Dynamic configuration API routes +// Configuration API routes Route::group( ['namespace' => 'FireflyIII\Api\V1\Controllers\System', 'prefix' => 'configuration', 'as' => 'api.v1.configuration.',], @@ -499,18 +507,21 @@ Route::group( } ); -// STATIC CONFIGURATION (NOT CHANGEABLE) -// TODO VERIFY API DOCS -//Route::group( -// ['namespace' => 'FireflyIII\Api\V1\Controllers\System', 'prefix' => 'configuration/static', -// 'as' => 'api.v1.configuration.static.',], -// static function () { -// -// // Configuration API routes: -// Route::get('', ['uses' => 'StaticConfigController@index', 'as' => 'index']); -// Route::get('{staticConfigKey}', ['uses' => 'StaticConfigController@show', 'as' => 'show']); -// } -//); +// Users API routes: +Route::group( + ['middleware' => ['auth:api', 'bindings', IsAdmin::class], 'namespace' => 'FireflyIII\Api\V1\Controllers\System', 'prefix' => 'users', + 'as' => 'api.v1.users.',], + static function () { + + Route::get('', ['uses' => 'UserController@index', 'as' => 'index']); + Route::post('', ['uses' => 'UserController@store', 'as' => 'store']); + Route::get('{user}', ['uses' => 'UserController@show', 'as' => 'show']); + Route::put('{user}', ['uses' => 'UserController@update', 'as' => 'update']); + Route::delete('{user}', ['uses' => 'UserController@destroy', 'as' => 'delete']); + } +); + + @@ -633,19 +644,7 @@ Route::group( //); // // -//// destroy data route. -//// TODO VERIFY API DOCS -//Route::group( -// ['namespace' => 'FireflyIII\Api\V1\Controllers', 'prefix' => 'data', -// 'as' => 'api.v1.data.',], -// static function () { -// -// // Overview API routes: -// Route::delete('destroy', ['uses' => 'Data\DestroyController@destroy', 'as' => 'destroy']); -// } -//); -// -// + // @@ -673,17 +672,3 @@ Route::group( // } //); // -//// TODO VERIFY API DOCS -//Route::group( -// ['middleware' => ['auth:api', 'bindings', IsAdmin::class], 'namespace' => 'FireflyIII\Api\V1\Controllers', 'prefix' => 'users', -// 'as' => 'api.v1.users.',], -// static function () { -// -// // Users API routes: -// Route::get('', ['uses' => 'UserController@index', 'as' => 'index']); -// Route::post('', ['uses' => 'UserController@store', 'as' => 'store']); -// Route::get('{user}', ['uses' => 'UserController@show', 'as' => 'show']); -// Route::put('{user}', ['uses' => 'UserController@update', 'as' => 'update']); -// Route::delete('{user}', ['uses' => 'UserController@delete', 'as' => 'delete']); -// } -//);