add parent node to node, fix type of null

This commit is contained in:
Yisroel Baum 2026-02-21 22:15:24 +02:00
parent 483110f773
commit 021a2a6f15
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
5 changed files with 24 additions and 1 deletions

View file

@ -9,5 +9,6 @@ class CreateNodeDto
public function __construct(
public Text $text,
public string $title,
public ?Node $parentNode,
) {}
}

View file

@ -7,10 +7,17 @@ use App\Text\Text;
class Node
{
public function __construct(
private int $id,
private string $title,
private Text $text,
private ?Node $parentNode,
) {}
public function getId(): int
{
return $this->id;
}
public function getTitle(): string
{
return $this->title;
@ -20,4 +27,9 @@ class Node
{
return $this->text;
}
public function getParentNode(): ?Node
{
return $this->parentNode;
}
}

View file

@ -22,10 +22,19 @@ class CreateNode
if ($text === null) {
throw new DomainException("Text with id: $id doesnt exist");
}
if ($request->parentNodeId === null) {
return $this->nodeRepo->create(new CreateNodeDto(
text: $text,
title: $request->title,
parentNode: null,
));
}
$parentNode = $this->nodeRepo->find($request->parentNodeId);
return $this->nodeRepo->create(new CreateNodeDto(
text: $text,
title: $request->title,
parentNode: $parentNode,
));
}
}

View file

@ -7,5 +7,6 @@ class CreateNodeRequest
public function __construct(
public int $textId,
public string $title,
public ?int $parentNodeId,
) {}
}

View file

@ -38,7 +38,7 @@ class FakeNodeRepository implements NodeRepository
}
);
if ($node === null) {
return nullj;
return null;
}
return new Node(