delete api update

This commit is contained in:
Čarodej
2022-05-03 08:27:14 +02:00
parent 257de10cc8
commit 9ed2eec092
4 changed files with 23 additions and 10 deletions
@@ -26,6 +26,10 @@ class DeleteFileOrFolderAction
->with('folders') ->with('folders')
->find($id); ->find($id);
if (! $folder) {
return;
}
Gate::authorize('can-edit', [$folder, $shared]); Gate::authorize('can-edit', [$folder, $shared]);
// Get folder shared record // Get folder shared record
@@ -85,6 +89,10 @@ class DeleteFileOrFolderAction
$file = File::withTrashed() $file = File::withTrashed()
->find($id); ->find($id);
if (! $file) {
return;
}
Gate::authorize('can-edit', [$file, $shared]); Gate::authorize('can-edit', [$file, $shared]);
// Get folder shared record // Get folder shared record
@@ -1,7 +1,7 @@
<?php <?php
namespace Domain\Items\Controllers; namespace Domain\Items\Controllers;
use Illuminate\Http\Response; use Illuminate\Http\JsonResponse;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Domain\Items\Requests\DeleteItemRequest; use Domain\Items\Requests\DeleteItemRequest;
use Domain\Items\Actions\DeleteFileOrFolderAction; use Domain\Items\Actions\DeleteFileOrFolderAction;
@@ -18,15 +18,20 @@ class DeleteFileOrFolderController extends Controller
*/ */
public function __invoke( public function __invoke(
DeleteItemRequest $request, DeleteItemRequest $request,
): Response { ): JsonResponse {
$successMessage = [
'type' => 'success',
'message' => 'Items was successfully deleted.',
];
if (is_demo_account()) { if (is_demo_account()) {
abort(204, 'Done.'); return response()->json($successMessage);
} }
foreach ($request->input('items') as $item) { foreach ($request->input('items') as $item) {
($this->deleteFileOrFolder)($item, $item['id']); ($this->deleteFileOrFolder)($item, $item['id']);
} }
return response('Done', 204); return response()->json($successMessage);
} }
} }
@@ -1,8 +1,6 @@
<?php <?php
namespace Domain\Items\Controllers; namespace Domain\Items\Controllers;
use Domain\Files\Models\File;
use Domain\Folders\Models\Folder;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Domain\Files\Resources\FileResource; use Domain\Files\Resources\FileResource;
use Domain\Folders\Resources\FolderResource; use Domain\Folders\Resources\FolderResource;
@@ -29,7 +27,7 @@ class RenameFileOrFolderController extends Controller
public function __invoke( public function __invoke(
RenameItemRequest $request, RenameItemRequest $request,
string $id, string $id,
): FileResource | FolderResource | File | Folder | array { ): FileResource|FolderResource {
if (is_demo_account()) { if (is_demo_account()) {
$item = ($this->fakeRenameFileOrFolder)($request, $id); $item = ($this->fakeRenameFileOrFolder)($request, $id);
@@ -1,4 +1,5 @@
<?php <?php
namespace Domain\Items\Requests; namespace Domain\Items\Requests;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -23,9 +24,10 @@ class DeleteItemRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'data[*].force_delete' => 'required|boolean', 'items' => 'array',
'data[*].type' => 'required|string', 'items.*.force_delete' => 'required|boolean',
'data[*].id' => 'required|integer', 'items.*.type' => 'required|string',
'items.*.id' => 'required|uuid',
]; ];
} }
} }