From b44830fa5379d07a618e2f8917f806ddb0a8759e Mon Sep 17 00:00:00 2001 From: Yisroel Baum Date: Mon, 25 May 2026 08:12:50 +0300 Subject: [PATCH] find elements by set --- backend/app/Element/ElementRepository.php | 4 +++- backend/app/Element/EloquentElementRepository.php | 7 +++++-- .../app/Element/UseCases/CreateElement/CreateElement.php | 7 ++++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/backend/app/Element/ElementRepository.php b/backend/app/Element/ElementRepository.php index 7c91492..4f39fb6 100644 --- a/backend/app/Element/ElementRepository.php +++ b/backend/app/Element/ElementRepository.php @@ -2,6 +2,8 @@ namespace App\Element; +use App\Set\Set as DomainSet; + interface ElementRepository { public function create(CreateElementDto $dto): Element; @@ -11,5 +13,5 @@ interface ElementRepository /** * @return Element[] */ - public function findBySetId(int $id): array; + public function findBySet(DomainSet $set): array; } diff --git a/backend/app/Element/EloquentElementRepository.php b/backend/app/Element/EloquentElementRepository.php index 4951d2e..56ec2e6 100644 --- a/backend/app/Element/EloquentElementRepository.php +++ b/backend/app/Element/EloquentElementRepository.php @@ -2,6 +2,7 @@ namespace App\Element; +use App\Set\Set as DomainSet; use App\Set\SetRepository; use DomainException; @@ -35,9 +36,11 @@ class EloquentElementRepository implements ElementRepository /** * @return Element[] */ - public function findBySetId(int $id): array + public function findBySet(DomainSet $set): array { - $models = ElementModel::where('set_id', $id)->orderBy('id')->get(); + $models = ElementModel::where('set_id', $set->getId()) + ->orderBy('id') + ->get(); $elements = []; foreach ($models as $model) { $elements[] = $this->toDomain($model); diff --git a/backend/app/Element/UseCases/CreateElement/CreateElement.php b/backend/app/Element/UseCases/CreateElement/CreateElement.php index 881bcea..6656338 100644 --- a/backend/app/Element/UseCases/CreateElement/CreateElement.php +++ b/backend/app/Element/UseCases/CreateElement/CreateElement.php @@ -6,6 +6,7 @@ use App\Element\CreateElementDto; use App\Element\Element; use App\Element\ElementRepository; use App\Exceptions\BadRequestException; +use App\Set\Set as DomainSet; use App\Set\SetRepository; use DomainException; @@ -37,7 +38,7 @@ class CreateElement } if ($request->parentElementId === null) { - $this->validateNoRootElementExists($request->setId); + $this->validateNoRootElementExists($set); return $this->elementRepo->create(new CreateElementDto( set: $set, @@ -70,9 +71,9 @@ class CreateElement /** * @throws DomainException */ - private function validateNoRootElementExists(int $setId): void + private function validateNoRootElementExists(DomainSet $set): void { - $elements = $this->elementRepo->findBySetId($setId); + $elements = $this->elementRepo->findBySet($set); foreach ($elements as $element) { if ($element->getParentElement() === null) { throw new DomainException(