diff --git a/routes/api.php b/routes/api.php index d53cf87..14ff18e 100644 --- a/routes/api.php +++ b/routes/api.php @@ -8,9 +8,11 @@ use Whitecube\NovaPage\Http\Controllers\Page\IndexController as PageResourceIndexController; use Whitecube\NovaPage\Http\Controllers\Page\CountController as PageResourceCountController; use Whitecube\NovaPage\Http\Controllers\Page\UpdateController as PageResourceUpdateController; +use Whitecube\NovaPage\Http\Controllers\Page\FieldDestroyController as PageFieldDestroyController; use Whitecube\NovaPage\Http\Controllers\Option\IndexController as OptionResourceIndexController; use Whitecube\NovaPage\Http\Controllers\Option\CountController as OptionResourceCountController; use Whitecube\NovaPage\Http\Controllers\Option\UpdateController as OptionResourceUpdateController; +use Whitecube\NovaPage\Http\Controllers\Option\FieldDestroyController as OptionFieldDestroyController; /* |-------------------------------------------------------------------------- @@ -43,7 +45,9 @@ Route::get('/nova-api/nova-page', PageResourceIndexController::class . '@handle'); Route::get('/nova-api/nova-page/count', PageResourceCountController::class . '@show'); Route::put('/nova-api/nova-page/{resourceId}', PageResourceUpdateController::class . '@handle'); +Route::delete('/nova-api/nova-page/{resourceId}/field/{field}', PageFieldDestroyController::class . '@handle'); Route::get('/nova-api/nova-option', OptionResourceIndexController::class . '@handle'); Route::get('/nova-api/nova-option/count', OptionResourceCountController::class . '@show'); Route::put('/nova-api/nova-option/{resourceId}', OptionResourceUpdateController::class . '@handle'); +Route::delete('/nova-api/nova-option/{resourceId}/field/{field}', OptionFieldDestroyController::class . '@handle'); diff --git a/src/Http/Controllers/Option/FieldDestroyController.php b/src/Http/Controllers/Option/FieldDestroyController.php new file mode 100644 index 0000000..e4bf540 --- /dev/null +++ b/src/Http/Controllers/Option/FieldDestroyController.php @@ -0,0 +1,15 @@ +getRouteResolver()); + $route->setParameter('resource', $this->resourceName); + $request->findResourceOrFail()->authorizeToUpdate($request); + + $resource = $request->newResource(); + $field = $resource->updateFields($request)->findFieldByAttribute($request->field); + + if (!($field instanceof File)) { + abort(404); + } + + $template = $request->findModelQuery()->firstOrFail(); + + DeleteField::forRequest( + $request, + $field, + $template + )->save(); + } +}