create folder in upload request

This commit is contained in:
Čarodej
2022-02-23 08:26:16 +01:00
parent 0501e3e3d5
commit fdfb5f57d7
8 changed files with 113 additions and 25 deletions

View File

@@ -0,0 +1,46 @@
<?php
namespace Domain\UploadRequest\Controllers;
use Domain\Folders\Actions\CreateFolderAction;
use Domain\Folders\Models\Folder;
use Domain\Folders\Requests\CreateFolderRequest;
use Domain\Folders\Resources\FolderResource;
use Domain\UploadRequest\Models\UploadRequest;
use Support\Demo\Actions\FakeCreateFolderAction;
class CreateFolderController
{
public function __construct(
public CreateFolderAction $createFolder,
public FakeCreateFolderAction $fakeCreateFolder,
) {
}
public function __invoke(CreateFolderRequest $request, UploadRequest $uploadRequest)
{
// Check if upload request is active
if ($uploadRequest->status !== 'active') {
return response('Gone', 410);
}
// Check privileges
if (! in_array($request->input('parent_id'), getChildrenFolderIds($uploadRequest->id))) {
return response('Access Denied', 403);
}
// Create new folder
$folder = Folder::create([
'parent_id' => $request->input('parent_id'),
'name' => $request->input('name'),
'color' => $request->input('color') ?? null,
'emoji' => $request->input('emoji') ?? null,
'author' => 'visitor',
'user_id' => $uploadRequest->user_id,
'team_folder' => false,
]);
// Return new folder
return response(new FolderResource($folder), 201);
}
}