Refactoring

This commit is contained in:
Peter Papp
2021-07-22 14:24:07 +02:00
parent 69eb8dacce
commit 093c9451ec
34 changed files with 214 additions and 120 deletions
@@ -1,6 +1,7 @@
<?php
namespace Domain\Folders\Actions;
use Domain\Folders\Requests\CreateFolderRequest;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\Auth;
@@ -11,14 +12,14 @@ class CreateFolderAction
* Create new directory
*/
public function __invoke(
$request,
CreateFolderRequest $request,
?Share $shared = null,
): Folder | array {
return Folder::create([
'parent_id' => $request->parent_id,
'name' => $request->name,
'color' => $request->color ?? null,
'emoji' => $request->emoji ?? null,
'parent_id' => $request->input('parent_id'),
'name' => $request->input('name'),
'color' => $request->input('color') ?? null,
'emoji' => $request->input('emoji') ?? null,
'author' => $shared ? 'visitor' : 'user',
'user_id' => $shared ? $shared->user_id : Auth::id(),
]);
@@ -2,13 +2,14 @@
namespace Domain\Folders\Actions;
use Domain\Folders\Models\Folder;
use Domain\Items\Requests\RenameItemRequest;
class UpdateFolderPropertyAction
{
/**
* Update folder icon or style
*/
public function __invoke($request, string $id): void
public function __invoke(RenameItemRequest $request, string $id): void
{
// Get folder
$folder = Folder::find($id);
@@ -24,7 +25,7 @@ class UpdateFolderPropertyAction
// Set emoji
if ($request->filled('emoji')) {
$folder->update([
'emoji' => $request->emoji,
'emoji' => $request->input('emoji'),
'color' => null,
]);
}
@@ -33,7 +34,7 @@ class UpdateFolderPropertyAction
if ($request->filled('color')) {
$folder->update([
'emoji' => null,
'color' => $request->color,
'color' => $request->input('color'),
]);
}
}
@@ -10,20 +10,24 @@ use Support\Demo\Actions\FakeCreateFolderAction;
class CreateFolderController extends Controller
{
public function __construct(
public CreateFolderAction $createFolder,
public FakeCreateFolderAction $fakeCreateFolder,
) {}
/**
* Create new folder for authenticated master|editor user
*/
public function __invoke(
CreateFolderRequest $request,
CreateFolderAction $createFolder,
FakeCreateFolderAction $fakeCreateFolder,
): Response | array {
// If is demo, return fake folder
if (is_demo_account(Auth::user()->email)) {
return ($fakeCreateFolder)($request);
return ($this->fakeCreateFolder)($request);
}
$folder = ($createFolder)($request);
// CreateFolder
$folder = ($this->createFolder)($request);
return response($folder, 201);
}
+13
View File
@@ -17,6 +17,19 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
/**
* @method static whereUserId(int|string|null $id)
* @method static find(mixed $id)
* @method static where(string $string, string $user_id)
* @property string id
* @property string user_id
* @property string parent_id
* @property string name
* @property string color
* @property string emoji
* @property string author
* @property string author_id
* @property string created_at
* @property string updated_at
* @property string deleted_at
*/
class Folder extends Model
{