delete child elements

This commit is contained in:
Yisroel Baum 2026-06-21 22:13:59 +03:00
parent ac0f404fce
commit f4b42973cb
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
10 changed files with 271 additions and 17 deletions

View file

@ -5,6 +5,8 @@ namespace App\Controllers;
use App\Element\Element;
use App\Element\UseCases\CreateChildElement\CreateChildElement;
use App\Element\UseCases\CreateChildElement\CreateChildElementRequest;
use App\Element\UseCases\DeleteChildElement\DeleteChildElement;
use App\Element\UseCases\DeleteChildElement\DeleteChildElementRequest;
use App\Element\UseCases\GetElement\GetElement;
use App\Element\UseCases\GetElement\GetElementRequest;
use App\Element\UseCases\UpdateElement\UpdateElement;
@ -21,6 +23,7 @@ class ElementController
public function __construct(
private GetElement $getElement,
private CreateChildElement $createChildElement,
private DeleteChildElement $deleteChildElement,
private UpdateElement $updateElement,
private FileUploader $fileUploader,
) {
@ -82,6 +85,28 @@ class ElementController
], 201);
}
public function deleteChild(?int $parentId, ?int $childId): JsonResponse
{
try {
$this->deleteChildElement->execute(
new DeleteChildElementRequest(
parentElementId: $parentId,
childElementId: $childId,
)
);
} catch (BadRequestException $exception) {
return new JsonResponse([
'error' => $exception->getMessage(),
], 400);
} catch (NotFoundException $exception) {
return new JsonResponse([
'error' => $exception->getMessage(),
], 404);
}
return new JsonResponse(null, 204);
}
public function update(Request $request): JsonResponse
{
$file = $this->uploadedFileInput($request, 'file');