From c0994d806eb79f80f606170481b811cd467221b9 Mon Sep 17 00:00:00 2001 From: Yisroel Baum Date: Fri, 20 Feb 2026 11:58:13 +0200 Subject: [PATCH] add text to node --- app/Node/CreateNodeDto.php | 3 +++ app/Node/Node.php | 8 ++++++++ app/Node/UseCases/CreateNode.php | 4 ++++ app/Node/UseCases/CreateNodeRequest.php | 1 + tests/Fakes/FakeNodeRepository.php | 1 + 5 files changed, 17 insertions(+) diff --git a/app/Node/CreateNodeDto.php b/app/Node/CreateNodeDto.php index 1ad45d9..ca87f51 100644 --- a/app/Node/CreateNodeDto.php +++ b/app/Node/CreateNodeDto.php @@ -2,9 +2,12 @@ namespace App\Node; +use App\Text\Text; + class CreateNodeDto { public function __construct( + public Text $text, public string $title, ) {} } diff --git a/app/Node/Node.php b/app/Node/Node.php index 292482e..c5cc050 100644 --- a/app/Node/Node.php +++ b/app/Node/Node.php @@ -2,14 +2,22 @@ namespace App\Node; +use App\Text\Text; + class Node { public function __construct( private string $title, + private Text $text, ) {} public function getTitle(): string { return $this->title; } + + public function getText(): Text + { + return $this->text; + } } diff --git a/app/Node/UseCases/CreateNode.php b/app/Node/UseCases/CreateNode.php index c3098af..736ad26 100644 --- a/app/Node/UseCases/CreateNode.php +++ b/app/Node/UseCases/CreateNode.php @@ -5,16 +5,20 @@ namespace App\Node\UseCases; use App\Node\Node; use App\Node\CreateNodeDto; use App\Node\NodeRepository; +use App\Text\TextRepository; class CreateNode { public function __construct( private NodeRepository $nodeRepo, + private TextRepository $textRepo, ) {} public function execute(CreateNodeRequest $request): Node { + $text = $this->textRepo->find($request->textId); return $this->nodeRepo->create(new CreateNodeDto( + text: $text, title: $request->title, )); } diff --git a/app/Node/UseCases/CreateNodeRequest.php b/app/Node/UseCases/CreateNodeRequest.php index f25d8e2..4ea1d11 100644 --- a/app/Node/UseCases/CreateNodeRequest.php +++ b/app/Node/UseCases/CreateNodeRequest.php @@ -5,6 +5,7 @@ namespace App\Node\UseCases; class CreateNodeRequest { public function __construct( + public int $textId, public string $title, ) {} } diff --git a/tests/Fakes/FakeNodeRepository.php b/tests/Fakes/FakeNodeRepository.php index 5bab53a..d214340 100644 --- a/tests/Fakes/FakeNodeRepository.php +++ b/tests/Fakes/FakeNodeRepository.php @@ -11,6 +11,7 @@ class FakeNodeRepository implements NodeRepository public function create(CreateNodeDto $dto): Node { return new Node( + text: $dto->text, title: $dto->title, ); }