From 8e8947cdfaa857a2e24683516c3b1f047c73044f Mon Sep 17 00:00:00 2001 From: Manuel Aranda Date: Mon, 15 Jul 2024 08:16:37 +0200 Subject: [PATCH] refs #436. Change parent ou --- src/Controller/OrganizationalUnitChangeParentAction.php | 7 +++++-- src/Dto/Output/ClientOutput.php | 4 ++++ src/Dto/Output/HardwareProfileOutput.php | 2 +- src/Dto/Output/NetworkSettingsOutput.php | 2 +- src/Dto/Output/OrganizationalUnitOutput.php | 4 ++++ src/Handler/OrganizationalUnitChangeParentHandler.php | 6 ++++-- src/Repository/AbstractRepository.php | 2 +- 7 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/Controller/OrganizationalUnitChangeParentAction.php b/src/Controller/OrganizationalUnitChangeParentAction.php index 7061b22..478d702 100644 --- a/src/Controller/OrganizationalUnitChangeParentAction.php +++ b/src/Controller/OrganizationalUnitChangeParentAction.php @@ -3,10 +3,13 @@ namespace App\Controller; use App\Dto\Input\OrganizationalUnitInput; +use App\Dto\Output\OrganizationalUnitOutput; use App\Entity\OrganizationalUnit; use App\Handler\OrganizationalUnitChangeParentHandler; use App\Repository\OrganizationalUnitRepository; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; +use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\Response; class OrganizationalUnitChangeParentAction extends AbstractController { @@ -17,10 +20,10 @@ class OrganizationalUnitChangeParentAction extends AbstractController } - public function __invoke(OrganizationalUnit $organizationalUnit): OrganizationalUnitInput + public function __invoke(OrganizationalUnit $organizationalUnit): JsonResponse { $this->organizationalUnitChangeParentHandler->handle($organizationalUnit); - return new OrganizationalUnitInput($organizationalUnit); + return new JsonResponse(data: 'Organizational unit parent changed successfully', status: Response::HTTP_OK); } } \ No newline at end of file diff --git a/src/Dto/Output/ClientOutput.php b/src/Dto/Output/ClientOutput.php index fb4249b..a7b49e3 100644 --- a/src/Dto/Output/ClientOutput.php +++ b/src/Dto/Output/ClientOutput.php @@ -31,6 +31,9 @@ final class ClientOutput extends AbstractOutput #[Groups(['client:read'])] public ?string $netiface = ''; + #[Groups(['client:read'])] + public ?string $netDriver = ''; + #[Groups(['client:read'])] #[ApiProperty(readableLink: true)] public ?OrganizationalUnitOutput $organizationalUnit = null; @@ -60,6 +63,7 @@ final class ClientOutput extends AbstractOutput $this->mac = $client->getMac(); $this->ip = $client->getIp(); $this->netiface = $client->getNetiface(); + $this->netDriver = $client->getNetDriver(); if ($client->getOrganizationalUnit()) { $this->organizationalUnit = new OrganizationalUnitOutput($client->getOrganizationalUnit()); diff --git a/src/Dto/Output/HardwareProfileOutput.php b/src/Dto/Output/HardwareProfileOutput.php index ba78e6d..128f2c8 100644 --- a/src/Dto/Output/HardwareProfileOutput.php +++ b/src/Dto/Output/HardwareProfileOutput.php @@ -11,7 +11,7 @@ use Symfony\Component\Serializer\Annotation\Groups; #[Get(shortName: 'HardwareProfile')] final class HardwareProfileOutput extends AbstractOutput { - #[Groups(['hardware-profile:read', 'client:read'])] + #[Groups(['hardware-profile:read', 'client:read', 'organizational-unit:read'])] public ?string $description = ''; #[Groups(['hardware-profile:read'])] diff --git a/src/Dto/Output/NetworkSettingsOutput.php b/src/Dto/Output/NetworkSettingsOutput.php index d909e37..9c0b66d 100644 --- a/src/Dto/Output/NetworkSettingsOutput.php +++ b/src/Dto/Output/NetworkSettingsOutput.php @@ -45,7 +45,7 @@ final class NetworkSettingsOutput extends AbstractOutput #[Groups(['network-settings:read', "organizational-unit:read", "client:read"])] public ?MenuOutput $menu = null; - #[Groups(['organizational-unit:read'])] + #[Groups(['network-settings:read', "organizational-unit:read", "client:read"])] public ?HardwareProfileOutput $hardwareProfile = null; #[Groups(['network-settings:read', "organizational-unit:read", "client:read"])] diff --git a/src/Dto/Output/OrganizationalUnitOutput.php b/src/Dto/Output/OrganizationalUnitOutput.php index 89ba2f6..a51a5c0 100644 --- a/src/Dto/Output/OrganizationalUnitOutput.php +++ b/src/Dto/Output/OrganizationalUnitOutput.php @@ -17,6 +17,9 @@ final class OrganizationalUnitOutput extends AbstractOutput #[Groups(['organizational-unit:read'])] public ?string $comments = null; + #[Groups(['organizational-unit:read'])] + public ?string $description = null; + #[Groups(['organizational-unit:read'])] public ?string $location = null; @@ -60,6 +63,7 @@ final class OrganizationalUnitOutput extends AbstractOutput $this->name = $organizationalUnit->getName(); $this->comments = $organizationalUnit->getComments(); + $this->description = $organizationalUnit->getDescription(); $this->location = $organizationalUnit->getLocation(); $this->projector = $organizationalUnit->isProjector(); $this->board = $organizationalUnit->isBoard(); diff --git a/src/Handler/OrganizationalUnitChangeParentHandler.php b/src/Handler/OrganizationalUnitChangeParentHandler.php index 9a58f45..0e1ee64 100644 --- a/src/Handler/OrganizationalUnitChangeParentHandler.php +++ b/src/Handler/OrganizationalUnitChangeParentHandler.php @@ -3,12 +3,14 @@ namespace App\Handler; use App\Entity\OrganizationalUnit; +use App\Repository\ClientRepository; use App\Repository\OrganizationalUnitRepository; readonly class OrganizationalUnitChangeParentHandler { public function __construct( - private OrganizationalUnitRepository $organizationalUnitRepository + private OrganizationalUnitRepository $organizationalUnitRepository, + private ClientRepository $clientRepository ) { } @@ -23,7 +25,7 @@ readonly class OrganizationalUnitChangeParentHandler foreach ($organizationalUnit->getClients() as $client) { $client->setOrganizationalUnit($parent); - $this->organizationalUnitRepository->save($client); + $this->clientRepository->save($client); } $this->organizationalUnitRepository->delete($organizationalUnit); diff --git a/src/Repository/AbstractRepository.php b/src/Repository/AbstractRepository.php index ff14f0b..2eb3b12 100644 --- a/src/Repository/AbstractRepository.php +++ b/src/Repository/AbstractRepository.php @@ -24,7 +24,7 @@ abstract class AbstractRepository extends ServiceEntityRepository } } - public function delete (AbstractEntity $entity, bool $flush = true): void + public function delete(AbstractEntity $entity, bool $flush = true): void { $this->getEntityManager()->remove($entity);