From b829c584df2e7e8e05fa343978badc14b4042043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Sat, 13 Jan 2024 21:07:43 +0100 Subject: [PATCH] Remove data transformer registry --- config/services.yaml | 8 -- src/Controller/Dlc/CreateAction.php | 6 +- src/Controller/Dlc/UpdateAction.php | 8 +- src/Controller/Mod/CreateAction.php | 6 +- src/Controller/Mod/UpdateAction.php | 8 +- src/Controller/ModGroup/CreateAction.php | 6 +- src/Controller/ModGroup/UpdateAction.php | 8 +- src/Controller/ModList/CopyAction.php | 12 +-- src/Controller/ModList/CreateAction.php | 6 +- src/Controller/ModList/UpdateAction.php | 8 +- src/Controller/User/UpdateAction.php | 8 +- src/Controller/UserGroup/CreateAction.php | 6 +- src/Controller/UserGroup/UpdateAction.php | 8 +- src/Form/AbstractFormDto.php | 15 --- src/Form/DataTransformerInterface.php | 20 ---- src/Form/DataTransformerRegistry.php | 51 --------- .../DlcFormDtoDataTransformer.php | 65 ++++------- src/Form/Dlc/Dto/DlcFormDto.php | 13 ++- src/Form/FormDtoInterface.php | 13 --- .../ModFormDtoDataTransformer.php | 101 +++++++----------- src/Form/Mod/Dto/ModFormDto.php | 25 ++--- src/Form/Mod/ModFormType.php | 2 +- .../ModGroupFormDtoDataTransformer.php | 63 ++++------- src/Form/ModGroup/Dto/ModGroupFormDto.php | 11 +- .../ModListFormDtoDataTransformer.php | 94 +++++++--------- src/Form/ModList/Dto/ModListFormDto.php | 21 ++-- src/Form/ModList/ModListFormType.php | 4 +- .../RegisteredDataTransformerInterface.php | 14 --- .../UserFormDtoDataTransformer.php | 57 +++------- src/Form/User/Dto/UserFormDto.php | 9 +- .../UserGroupFormDtoDataTransformer.php | 70 ++++-------- src/Form/UserGroup/Dto/UserGroupFormDto.php | 13 ++- 32 files changed, 240 insertions(+), 519 deletions(-) delete mode 100644 src/Form/AbstractFormDto.php delete mode 100644 src/Form/DataTransformerInterface.php delete mode 100644 src/Form/DataTransformerRegistry.php delete mode 100644 src/Form/FormDtoInterface.php delete mode 100644 src/Form/RegisteredDataTransformerInterface.php diff --git a/config/services.yaml b/config/services.yaml index da581f1c..a863933c 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -23,10 +23,6 @@ services: autowire: true # Automatically injects dependencies in your services. autoconfigure: true # Automatically registers your services as commands, event subscribers, etc. - _instanceof: - App\Form\RegisteredDataTransformerInterface: - tags: [ 'app.form.registered_data_transformer' ] - # makes classes in src/ available to be used as services # this creates a service per class whose id is the fully-qualified class name App\: @@ -111,10 +107,6 @@ services: arguments: $defaultLocale: '%kernel.default_locale%' - App\Form\DataTransformerRegistry: - arguments: - $registeredDataTransformers: !tagged_iterator app.form.registered_data_transformer - when@test: services: security.helper: # see: https://github.com/Codeception/module-symfony/issues/34 diff --git a/src/Controller/Dlc/CreateAction.php b/src/Controller/Dlc/CreateAction.php index a3e97f15..8ebb99d8 100644 --- a/src/Controller/Dlc/CreateAction.php +++ b/src/Controller/Dlc/CreateAction.php @@ -4,7 +4,7 @@ namespace App\Controller\Dlc; -use App\Form\DataTransformerRegistry; +use App\Form\Dlc\DataTransformer\DlcFormDtoDataTransformer; use App\Form\Dlc\DlcFormType; use App\Form\Dlc\Dto\DlcFormDto; use App\Security\Enum\PermissionsEnum; @@ -19,7 +19,7 @@ class CreateAction extends AbstractController { public function __construct( private EntityManagerInterface $entityManager, - private DataTransformerRegistry $dataTransformerRegistry + private DlcFormDtoDataTransformer $dlcFormDtoDataTransformer ) { } @@ -32,7 +32,7 @@ public function __invoke(Request $request): Response $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $dlc = $this->dataTransformerRegistry->transformToEntity($dlcFormDto); + $dlc = $this->dlcFormDtoDataTransformer->transformToEntity($dlcFormDto); $this->entityManager->persist($dlc); $this->entityManager->flush(); diff --git a/src/Controller/Dlc/UpdateAction.php b/src/Controller/Dlc/UpdateAction.php index 9d69015d..0fceca95 100644 --- a/src/Controller/Dlc/UpdateAction.php +++ b/src/Controller/Dlc/UpdateAction.php @@ -5,7 +5,7 @@ namespace App\Controller\Dlc; use App\Entity\Dlc\Dlc; -use App\Form\DataTransformerRegistry; +use App\Form\Dlc\DataTransformer\DlcFormDtoDataTransformer; use App\Form\Dlc\DlcFormType; use App\Form\Dlc\Dto\DlcFormDto; use App\Security\Enum\PermissionsEnum; @@ -20,7 +20,7 @@ class UpdateAction extends AbstractController { public function __construct( private EntityManagerInterface $entityManager, - private DataTransformerRegistry $dataTransformerRegistry + private DlcFormDtoDataTransformer $dlcFormDtoDataTransformer ) { } @@ -28,12 +28,12 @@ public function __construct( #[IsGranted(PermissionsEnum::DLC_UPDATE->value, 'dlc')] public function __invoke(Request $request, Dlc $dlc): Response { - $dlcFormDto = $this->dataTransformerRegistry->transformFromEntity(new DlcFormDto(), $dlc); + $dlcFormDto = $this->dlcFormDtoDataTransformer->transformFromEntity(new DlcFormDto(), $dlc); $form = $this->createForm(DlcFormType::class, $dlcFormDto); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $this->dataTransformerRegistry->transformToEntity($dlcFormDto, $dlc); + $this->dlcFormDtoDataTransformer->transformToEntity($dlcFormDto, $dlc); $this->entityManager->flush(); diff --git a/src/Controller/Mod/CreateAction.php b/src/Controller/Mod/CreateAction.php index 1a313e34..cab18942 100644 --- a/src/Controller/Mod/CreateAction.php +++ b/src/Controller/Mod/CreateAction.php @@ -4,7 +4,7 @@ namespace App\Controller\Mod; -use App\Form\DataTransformerRegistry; +use App\Form\Mod\DataTransformer\ModFormDtoDataTransformer; use App\Form\Mod\Dto\ModFormDto; use App\Form\Mod\ModFormType; use App\Security\Enum\PermissionsEnum; @@ -19,7 +19,7 @@ class CreateAction extends AbstractController { public function __construct( private EntityManagerInterface $entityManager, - private DataTransformerRegistry $dataTransformerRegistry + private ModFormDtoDataTransformer $modFormDtoDataTransformer ) { } @@ -32,7 +32,7 @@ public function __invoke(Request $request): Response $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $mod = $this->dataTransformerRegistry->transformToEntity($modFormDto); + $mod = $this->modFormDtoDataTransformer->transformToEntity($modFormDto); $this->entityManager->persist($mod); $this->entityManager->flush(); diff --git a/src/Controller/Mod/UpdateAction.php b/src/Controller/Mod/UpdateAction.php index 2dc679c3..24405ff6 100644 --- a/src/Controller/Mod/UpdateAction.php +++ b/src/Controller/Mod/UpdateAction.php @@ -5,7 +5,7 @@ namespace App\Controller\Mod; use App\Entity\Mod\AbstractMod; -use App\Form\DataTransformerRegistry; +use App\Form\Mod\DataTransformer\ModFormDtoDataTransformer; use App\Form\Mod\Dto\ModFormDto; use App\Form\Mod\ModFormType; use App\Security\Enum\PermissionsEnum; @@ -20,7 +20,7 @@ class UpdateAction extends AbstractController { public function __construct( private EntityManagerInterface $entityManager, - private DataTransformerRegistry $dataTransformerRegistry + private ModFormDtoDataTransformer $modFormDtoDataTransformer ) { } @@ -28,12 +28,12 @@ public function __construct( #[IsGranted(PermissionsEnum::MOD_UPDATE->value, 'mod')] public function __invoke(Request $request, AbstractMod $mod): Response { - $modFormDto = $this->dataTransformerRegistry->transformFromEntity(new ModFormDto(), $mod); + $modFormDto = $this->modFormDtoDataTransformer->transformFromEntity(new ModFormDto(), $mod); $form = $this->createForm(ModFormType::class, $modFormDto); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $this->dataTransformerRegistry->transformToEntity($modFormDto, $mod); + $this->modFormDtoDataTransformer->transformToEntity($modFormDto, $mod); $this->entityManager->flush(); diff --git a/src/Controller/ModGroup/CreateAction.php b/src/Controller/ModGroup/CreateAction.php index 14e0852b..21c19274 100644 --- a/src/Controller/ModGroup/CreateAction.php +++ b/src/Controller/ModGroup/CreateAction.php @@ -4,7 +4,7 @@ namespace App\Controller\ModGroup; -use App\Form\DataTransformerRegistry; +use App\Form\ModGroup\DataTransformer\ModGroupFormDtoDataTransformer; use App\Form\ModGroup\Dto\ModGroupFormDto; use App\Form\ModGroup\ModGroupFormType; use App\Security\Enum\PermissionsEnum; @@ -19,7 +19,7 @@ class CreateAction extends AbstractController { public function __construct( private EntityManagerInterface $entityManager, - private DataTransformerRegistry $dataTransformerRegistry + private ModGroupFormDtoDataTransformer $modGroupFormDtoDataTransformer ) { } @@ -32,7 +32,7 @@ public function __invoke(Request $request): Response $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $modGroup = $this->dataTransformerRegistry->transformToEntity($modGroupFormDto); + $modGroup = $this->modGroupFormDtoDataTransformer->transformToEntity($modGroupFormDto); $this->entityManager->persist($modGroup); $this->entityManager->flush(); diff --git a/src/Controller/ModGroup/UpdateAction.php b/src/Controller/ModGroup/UpdateAction.php index 455f91df..55c02fb0 100644 --- a/src/Controller/ModGroup/UpdateAction.php +++ b/src/Controller/ModGroup/UpdateAction.php @@ -5,7 +5,7 @@ namespace App\Controller\ModGroup; use App\Entity\ModGroup\ModGroup; -use App\Form\DataTransformerRegistry; +use App\Form\ModGroup\DataTransformer\ModGroupFormDtoDataTransformer; use App\Form\ModGroup\Dto\ModGroupFormDto; use App\Form\ModGroup\ModGroupFormType; use App\Security\Enum\PermissionsEnum; @@ -20,7 +20,7 @@ class UpdateAction extends AbstractController { public function __construct( private EntityManagerInterface $entityManager, - private DataTransformerRegistry $dataTransformerRegistry + private ModGroupFormDtoDataTransformer $modGroupFormDtoDataTransformer ) { } @@ -28,12 +28,12 @@ public function __construct( #[IsGranted(PermissionsEnum::MOD_GROUP_UPDATE->value, 'modGroup')] public function __invoke(Request $request, ModGroup $modGroup): Response { - $modGroupFormDto = $this->dataTransformerRegistry->transformFromEntity(new ModGroupFormDto(), $modGroup); + $modGroupFormDto = $this->modGroupFormDtoDataTransformer->transformFromEntity(new ModGroupFormDto(), $modGroup); $form = $this->createForm(ModGroupFormType::class, $modGroupFormDto); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $this->dataTransformerRegistry->transformToEntity($modGroupFormDto, $modGroup); + $this->modGroupFormDtoDataTransformer->transformToEntity($modGroupFormDto, $modGroup); $this->entityManager->flush(); diff --git a/src/Controller/ModList/CopyAction.php b/src/Controller/ModList/CopyAction.php index 5ccabfd7..40c6f0de 100644 --- a/src/Controller/ModList/CopyAction.php +++ b/src/Controller/ModList/CopyAction.php @@ -5,7 +5,7 @@ namespace App\Controller\ModList; use App\Entity\ModList\ModList; -use App\Form\DataTransformerRegistry; +use App\Form\ModList\DataTransformer\ModListFormDtoDataTransformer; use App\Form\ModList\Dto\ModListFormDto; use App\Form\ModList\ModListFormType; use App\Security\Enum\PermissionsEnum; @@ -20,7 +20,7 @@ class CopyAction extends AbstractController { public function __construct( private EntityManagerInterface $entityManager, - private DataTransformerRegistry $dataTransformerRegistry + private ModListFormDtoDataTransformer $modListFormDtoDataTransformer ) { } @@ -28,16 +28,12 @@ public function __construct( #[IsGranted(PermissionsEnum::MOD_LIST_COPY->value, 'modList')] public function __invoke(Request $request, ModList $modList): Response { - /** @var ModListFormDto $modListFormDto */ - $modListFormDto = $this->dataTransformerRegistry->transformFromEntity(new ModListFormDto(), $modList); - $modListFormDto->setId(null); // Entity will be treated as new by the unique name validator - $modListFormDto->setApproved(false); // Reset approval status - + $modListFormDto = $this->modListFormDtoDataTransformer->transformFromEntity(new ModListFormDto(), $modList, true); $form = $this->createForm(ModListFormType::class, $modListFormDto); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $modListCopy = $this->dataTransformerRegistry->transformToEntity($modListFormDto); + $modListCopy = $this->modListFormDtoDataTransformer->transformToEntity($modListFormDto); $this->entityManager->persist($modListCopy); $this->entityManager->flush(); diff --git a/src/Controller/ModList/CreateAction.php b/src/Controller/ModList/CreateAction.php index e506f342..c8bb9f4d 100644 --- a/src/Controller/ModList/CreateAction.php +++ b/src/Controller/ModList/CreateAction.php @@ -4,7 +4,7 @@ namespace App\Controller\ModList; -use App\Form\DataTransformerRegistry; +use App\Form\ModList\DataTransformer\ModListFormDtoDataTransformer; use App\Form\ModList\Dto\ModListFormDto; use App\Form\ModList\ModListFormType; use App\Security\Enum\PermissionsEnum; @@ -19,7 +19,7 @@ class CreateAction extends AbstractController { public function __construct( private EntityManagerInterface $entityManager, - private DataTransformerRegistry $dataTransformerRegistry + private ModListFormDtoDataTransformer $modListFormDtoDataTransformer ) { } @@ -32,7 +32,7 @@ public function __invoke(Request $request): Response $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $modList = $this->dataTransformerRegistry->transformToEntity($modListFormDto); + $modList = $this->modListFormDtoDataTransformer->transformToEntity($modListFormDto); $this->entityManager->persist($modList); $this->entityManager->flush(); diff --git a/src/Controller/ModList/UpdateAction.php b/src/Controller/ModList/UpdateAction.php index b6e09eb4..0fea5f81 100644 --- a/src/Controller/ModList/UpdateAction.php +++ b/src/Controller/ModList/UpdateAction.php @@ -5,7 +5,7 @@ namespace App\Controller\ModList; use App\Entity\ModList\ModList; -use App\Form\DataTransformerRegistry; +use App\Form\ModList\DataTransformer\ModListFormDtoDataTransformer; use App\Form\ModList\Dto\ModListFormDto; use App\Form\ModList\ModListFormType; use App\Security\Enum\PermissionsEnum; @@ -20,7 +20,7 @@ class UpdateAction extends AbstractController { public function __construct( private EntityManagerInterface $entityManager, - private DataTransformerRegistry $dataTransformerRegistry + private ModListFormDtoDataTransformer $modListFormDtoDataTransformer ) { } @@ -28,12 +28,12 @@ public function __construct( #[IsGranted(PermissionsEnum::MOD_LIST_UPDATE->value, 'modList')] public function __invoke(Request $request, ModList $modList): Response { - $modListFormDto = $this->dataTransformerRegistry->transformFromEntity(new ModListFormDto(), $modList); + $modListFormDto = $this->modListFormDtoDataTransformer->transformFromEntity(new ModListFormDto(), $modList); $form = $this->createForm(ModListFormType::class, $modListFormDto); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $this->dataTransformerRegistry->transformToEntity($modListFormDto, $modList); + $this->modListFormDtoDataTransformer->transformToEntity($modListFormDto, $modList); $this->entityManager->flush(); diff --git a/src/Controller/User/UpdateAction.php b/src/Controller/User/UpdateAction.php index a6a86fca..d5482bb6 100644 --- a/src/Controller/User/UpdateAction.php +++ b/src/Controller/User/UpdateAction.php @@ -5,7 +5,7 @@ namespace App\Controller\User; use App\Entity\User\User; -use App\Form\DataTransformerRegistry; +use App\Form\User\DataTransformer\UserFormDtoDataTransformer; use App\Form\User\Dto\UserFormDto; use App\Form\User\UserFormType; use App\Security\Enum\PermissionsEnum; @@ -20,7 +20,7 @@ class UpdateAction extends AbstractController { public function __construct( private EntityManagerInterface $entityManager, - private DataTransformerRegistry $dataTransformerRegistry + private UserFormDtoDataTransformer $userFormDtoDataTransformer ) { } @@ -28,14 +28,14 @@ public function __construct( #[IsGranted(PermissionsEnum::USER_UPDATE->value, 'user')] public function __invoke(Request $request, User $user): Response { - $userFormDto = $this->dataTransformerRegistry->transformFromEntity(new UserFormDto(), $user); + $userFormDto = $this->userFormDtoDataTransformer->transformFromEntity(new UserFormDto(), $user); $form = $this->createForm(UserFormType::class, $userFormDto, [ 'target' => $user, ]); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $this->dataTransformerRegistry->transformToEntity($userFormDto, $user); + $this->userFormDtoDataTransformer->transformToEntity($userFormDto, $user); $this->entityManager->flush(); diff --git a/src/Controller/UserGroup/CreateAction.php b/src/Controller/UserGroup/CreateAction.php index 148c5fe1..ef114e4a 100644 --- a/src/Controller/UserGroup/CreateAction.php +++ b/src/Controller/UserGroup/CreateAction.php @@ -4,7 +4,7 @@ namespace App\Controller\UserGroup; -use App\Form\DataTransformerRegistry; +use App\Form\UserGroup\DataTransformer\UserGroupFormDtoDataTransformer; use App\Form\UserGroup\Dto\UserGroupFormDto; use App\Form\UserGroup\UserGroupFormType; use App\Security\Enum\PermissionsEnum; @@ -19,7 +19,7 @@ class CreateAction extends AbstractController { public function __construct( private EntityManagerInterface $entityManager, - private DataTransformerRegistry $dataTransformerRegistry + private UserGroupFormDtoDataTransformer $userGroupFormDtoDataTransformer ) { } @@ -32,7 +32,7 @@ public function __invoke(Request $request): Response $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $userGroup = $this->dataTransformerRegistry->transformToEntity($userGroupFormDto); + $userGroup = $this->userGroupFormDtoDataTransformer->transformToEntity($userGroupFormDto); $this->entityManager->persist($userGroup); $this->entityManager->flush(); diff --git a/src/Controller/UserGroup/UpdateAction.php b/src/Controller/UserGroup/UpdateAction.php index 9e4e7a0b..5bead593 100644 --- a/src/Controller/UserGroup/UpdateAction.php +++ b/src/Controller/UserGroup/UpdateAction.php @@ -5,7 +5,7 @@ namespace App\Controller\UserGroup; use App\Entity\UserGroup\UserGroup; -use App\Form\DataTransformerRegistry; +use App\Form\UserGroup\DataTransformer\UserGroupFormDtoDataTransformer; use App\Form\UserGroup\Dto\UserGroupFormDto; use App\Form\UserGroup\UserGroupFormType; use App\Security\Enum\PermissionsEnum; @@ -20,7 +20,7 @@ class UpdateAction extends AbstractController { public function __construct( private EntityManagerInterface $entityManager, - private DataTransformerRegistry $dataTransformerRegistry + private UserGroupFormDtoDataTransformer $userGroupFormDtoDataTransformer ) { } @@ -28,12 +28,12 @@ public function __construct( #[IsGranted(PermissionsEnum::USER_GROUP_UPDATE->value, 'userGroup')] public function __invoke(Request $request, UserGroup $userGroup): Response { - $userGroupFormDto = $this->dataTransformerRegistry->transformFromEntity(new UserGroupFormDto(), $userGroup); + $userGroupFormDto = $this->userGroupFormDtoDataTransformer->transformFromEntity(new UserGroupFormDto(), $userGroup); $form = $this->createForm(UserGroupFormType::class, $userGroupFormDto); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $this->dataTransformerRegistry->transformToEntity($userGroupFormDto, $userGroup); + $this->userGroupFormDtoDataTransformer->transformToEntity($userGroupFormDto, $userGroup); $this->entityManager->flush(); diff --git a/src/Form/AbstractFormDto.php b/src/Form/AbstractFormDto.php deleted file mode 100644 index a3fe389a..00000000 --- a/src/Form/AbstractFormDto.php +++ /dev/null @@ -1,15 +0,0 @@ -registeredDataTransformers as $registeredDataTransformer) { - if ($registeredDataTransformer->supportsTransformationToEntity($formDto, $entity)) { - return $registeredDataTransformer->transformToEntity($formDto, $entity); - } - } - - throw $this->createException($formDto, $entity); - } - - public function transformFromEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): FormDtoInterface - { - foreach ($this->registeredDataTransformers as $registeredDataTransformer) { - if ($registeredDataTransformer->supportsTransformationFromEntity($formDto, $entity)) { - return $registeredDataTransformer->transformFromEntity($formDto, $entity); - } - } - - throw $this->createException($formDto, $entity); - } - - private function createException(FormDtoInterface $formDto, AbstractEntity $entity = null): \Throwable - { - return new \InvalidArgumentException( - sprintf( - 'None of the registered data transformers supports transformation of "%s" to "%s"', - $formDto::class, - $entity ? $formDto::class : 'null', - ) - ); - } -} diff --git a/src/Form/Dlc/DataTransformer/DlcFormDtoDataTransformer.php b/src/Form/Dlc/DataTransformer/DlcFormDtoDataTransformer.php index f4ca3a89..cc826b66 100644 --- a/src/Form/Dlc/DataTransformer/DlcFormDtoDataTransformer.php +++ b/src/Form/Dlc/DataTransformer/DlcFormDtoDataTransformer.php @@ -4,83 +4,58 @@ namespace App\Form\Dlc\DataTransformer; -use App\Entity\AbstractEntity; use App\Entity\Dlc\Dlc; use App\Form\Dlc\Dto\DlcFormDto; -use App\Form\FormDtoInterface; -use App\Form\RegisteredDataTransformerInterface; use App\Service\SteamApiClient\Helper\SteamHelper; use App\Service\SteamApiClient\SteamApiClientInterface; use Ramsey\Uuid\Uuid; -class DlcFormDtoDataTransformer implements RegisteredDataTransformerInterface +class DlcFormDtoDataTransformer { public function __construct( private SteamApiClientInterface $steamApiClient ) { } - /** - * @param DlcFormDto $formDto - * @param null|Dlc $entity - * - * @return Dlc - */ - public function transformToEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): AbstractEntity + public function transformToEntity(DlcFormDto $dlcFormDto, Dlc $dlc = null): Dlc { - $appId = SteamHelper::appUrlToAppId($formDto->getUrl()); - $directory = $formDto->getDirectory(); - $name = $formDto->getName() ?? substr($this->steamApiClient->getAppInfo($appId)->getName(), 0, 255); + $appId = SteamHelper::appUrlToAppId($dlcFormDto->getUrl()); + $directory = $dlcFormDto->getDirectory(); + $name = $dlcFormDto->getName() ?? substr($this->steamApiClient->getAppInfo($appId)->getName(), 0, 255); - if (!$entity instanceof Dlc) { + if (!$dlc instanceof Dlc) { return new Dlc( Uuid::uuid4(), $name, - $formDto->getDescription(), + $dlcFormDto->getDescription(), $appId, $directory ); } - $entity->update( + $dlc->update( $name, - $formDto->getDescription(), + $dlcFormDto->getDescription(), $appId, $directory ); - return $entity; + return $dlc; } - /** - * @param DlcFormDto $formDto - * @param null|Dlc $entity - * - * @return DlcFormDto - */ - public function transformFromEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): FormDtoInterface + public function transformFromEntity(DlcFormDto $dlcFormDto, Dlc $dlc = null): DlcFormDto { - if (!$entity instanceof Dlc) { - return $formDto; + if (!$dlc instanceof Dlc) { + return $dlcFormDto; } - $formDto->setId($entity->getId()); - $formDto->setName($entity->getName()); - $formDto->setDescription($entity->getDescription()); - $url = SteamHelper::appIdToAppUrl($entity->getAppId()); - $formDto->setUrl($url); - $formDto->setDirectory($entity->getDirectory()); + $dlcFormDto->setId($dlc->getId()); + $dlcFormDto->setName($dlc->getName()); + $dlcFormDto->setDescription($dlc->getDescription()); + $url = SteamHelper::appIdToAppUrl($dlc->getAppId()); + $dlcFormDto->setUrl($url); + $dlcFormDto->setDirectory($dlc->getDirectory()); - return $formDto; - } - - public function supportsTransformationToEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): bool - { - return $formDto instanceof DlcFormDto; - } - - public function supportsTransformationFromEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): bool - { - return $formDto instanceof DlcFormDto; + return $dlcFormDto; } } diff --git a/src/Form/Dlc/Dto/DlcFormDto.php b/src/Form/Dlc/Dto/DlcFormDto.php index a0f2bba0..0e6aa469 100644 --- a/src/Form/Dlc/Dto/DlcFormDto.php +++ b/src/Form/Dlc/Dto/DlcFormDto.php @@ -4,7 +4,6 @@ namespace App\Form\Dlc\Dto; -use App\Form\AbstractFormDto; use App\Validator\Dlc\SteamStoreArma3DlcUrl; use App\Validator\Dlc\UniqueDirectoryDlc; use App\Validator\Dlc\UniqueSteamStoreDlc; @@ -15,22 +14,22 @@ #[SteamStoreArma3DlcUrl(errorPath: 'url')] #[UniqueSteamStoreDlc(errorPath: 'url')] #[UniqueDirectoryDlc(errorPath: 'directory')] -class DlcFormDto extends AbstractFormDto +class DlcFormDto { - protected ?UuidInterface $id = null; + private ?UuidInterface $id = null; #[Assert\Length(max: 255)] - protected ?string $name = null; + private ?string $name = null; #[Assert\Length(min: 1, max: 255)] - protected ?string $description = null; + private ?string $description = null; #[Assert\NotBlank] - protected ?string $url = null; + private ?string $url = null; #[Assert\NotBlank] #[WindowsDirectoryName] - protected ?string $directory = null; + private ?string $directory = null; public function getId(): ?UuidInterface { diff --git a/src/Form/FormDtoInterface.php b/src/Form/FormDtoInterface.php deleted file mode 100644 index e659ea7f..00000000 --- a/src/Form/FormDtoInterface.php +++ /dev/null @@ -1,13 +0,0 @@ -getSource()); - $type = ModTypeEnum::from($formDto->getType()); + $source = ModSourceEnum::from($modFormDto->getSource()); + $type = ModTypeEnum::from($modFormDto->getType()); /** @var null|ModStatusEnum $status */ - $status = $formDto->getStatus() ? ModStatusEnum::from($formDto->getStatus()) : null; + $status = $modFormDto->getStatus() ? ModStatusEnum::from($modFormDto->getStatus()) : null; if (ModSourceEnum::STEAM_WORKSHOP === $source) { - $itemId = SteamHelper::itemUrlToItemId($formDto->getUrl()); - $name = $formDto->getName() ?? substr($this->steamApiClient->getWorkshopItemInfo($itemId)->getName(), 0, 255); + $itemId = SteamHelper::itemUrlToItemId($modFormDto->getUrl()); + $name = $modFormDto->getName() ?? substr($this->steamApiClient->getWorkshopItemInfo($itemId)->getName(), 0, 255); - if (!$entity instanceof SteamWorkshopMod) { + if (!$mod instanceof SteamWorkshopMod) { return new SteamWorkshopMod( Uuid::uuid4(), $name, - $formDto->getDescription(), + $modFormDto->getDescription(), $status, $type, $itemId ); } - $entity->update( + $mod->update( $name, - $formDto->getDescription(), + $modFormDto->getDescription(), $status, $type, $itemId @@ -64,69 +55,53 @@ public function transformToEntity(FormDtoInterface $formDto, AbstractEntity $ent } if (ModSourceEnum::DIRECTORY === $source) { - if (!$entity instanceof DirectoryMod) { + if (!$mod instanceof DirectoryMod) { return new DirectoryMod( Uuid::uuid4(), - $formDto->getName(), - $formDto->getDescription(), + $modFormDto->getName(), + $modFormDto->getDescription(), $status, - $formDto->getDirectory(), + $modFormDto->getDirectory(), ); } - $entity->update( - $formDto->getName(), - $formDto->getDescription(), + $mod->update( + $modFormDto->getName(), + $modFormDto->getDescription(), $status, - $formDto->getDirectory() + $modFormDto->getDirectory() ); } - return $entity; + return $mod; } - /** - * @param ModFormDto $formDto - * @param null|AbstractMod $entity - * - * @return ModFormDto - */ - public function transformFromEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): FormDtoInterface + public function transformFromEntity(ModFormDto $modFormDto, AbstractMod $mod = null): ModFormDto { - if (!$entity instanceof AbstractMod) { - return $formDto; + if (!$mod instanceof AbstractMod) { + return $modFormDto; } - $formDto->setId($entity->getId()); - $formDto->setName($entity->getName()); - $formDto->setDescription($entity->getDescription()); + $modFormDto->setId($mod->getId()); + $modFormDto->setName($mod->getName()); + $modFormDto->setDescription($mod->getDescription()); /** @var null|string $status */ - $status = $entity->getStatus() ? $entity->getStatus()->value : null; - $formDto->setStatus($status); + $status = $mod->getStatus() ? $mod->getStatus()->value : null; + $modFormDto->setStatus($status); - if ($entity instanceof SteamWorkshopMod) { - $formDto->setType($entity->getType()->value); - $formDto->setSource(ModSourceEnum::STEAM_WORKSHOP->value); - $itemId = $entity->getItemId(); + if ($mod instanceof SteamWorkshopMod) { + $modFormDto->setType($mod->getType()->value); + $modFormDto->setSource(ModSourceEnum::STEAM_WORKSHOP->value); + $itemId = $mod->getItemId(); $url = SteamHelper::itemIdToItemUrl($itemId); - $formDto->setUrl($url); - } elseif ($entity instanceof DirectoryMod) { - $formDto->setType(ModTypeEnum::SERVER_SIDE->value); - $formDto->setSource(ModSourceEnum::DIRECTORY->value); - $formDto->setDirectory($entity->getDirectory()); + $modFormDto->setUrl($url); + } elseif ($mod instanceof DirectoryMod) { + $modFormDto->setType(ModTypeEnum::SERVER_SIDE->value); + $modFormDto->setSource(ModSourceEnum::DIRECTORY->value); + $modFormDto->setDirectory($mod->getDirectory()); } - return $formDto; - } - - public function supportsTransformationToEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): bool - { - return $formDto instanceof ModFormDto; - } - - public function supportsTransformationFromEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): bool - { - return $formDto instanceof ModFormDto; + return $modFormDto; } } diff --git a/src/Form/Mod/Dto/ModFormDto.php b/src/Form/Mod/Dto/ModFormDto.php index c71f922a..6db0fefc 100644 --- a/src/Form/Mod/Dto/ModFormDto.php +++ b/src/Form/Mod/Dto/ModFormDto.php @@ -5,48 +5,45 @@ namespace App\Form\Mod\Dto; use App\Entity\Mod\Enum\ModSourceEnum; -use App\Form\AbstractFormDto; use App\Validator\Mod\SteamWorkshopArma3ModUrl; use App\Validator\Mod\UniqueDirectoryMod; use App\Validator\Mod\UniqueSteamWorkshopMod; use App\Validator\WindowsDirectoryName; use Ramsey\Uuid\UuidInterface; +use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Constraints as Assert; #[UniqueSteamWorkshopMod(groups: [ModSourceEnum::STEAM_WORKSHOP->value], errorPath: 'url')] #[SteamWorkshopArma3ModUrl(groups: [ModSourceEnum::STEAM_WORKSHOP->value], errorPath: 'url', nameErrorPath: 'name')] #[UniqueDirectoryMod(groups: [ModSourceEnum::DIRECTORY->value], errorPath: 'directory')] -class ModFormDto extends AbstractFormDto +class ModFormDto { - protected ?UuidInterface $id = null; + private ?UuidInterface $id = null; #[Assert\NotBlank(groups: [ModSourceEnum::DIRECTORY->value])] #[Assert\Length(min: 1, max: 255)] - protected ?string $name = null; + private ?string $name = null; #[Assert\Length(min: 1, max: 255)] - protected ?string $description = null; + private ?string $description = null; - protected ?string $type = null; + private ?string $type = null; - protected ?string $status = null; + private ?string $status = null; - protected ?string $source = null; + private ?string $source = null; #[Assert\NotBlank(groups: [ModSourceEnum::STEAM_WORKSHOP->value])] #[Assert\Length(min: 1, max: 255, groups: [ModSourceEnum::STEAM_WORKSHOP->value])] - protected ?string $url = null; + private ?string $url = null; #[Assert\NotBlank(groups: [ModSourceEnum::DIRECTORY->value])] #[WindowsDirectoryName(groups: [ModSourceEnum::DIRECTORY->value])] - protected ?string $directory = null; + private ?string $directory = null; public function resolveValidationGroups(): array { - $validationGroups = parent::resolveValidationGroups(); - $validationGroups[] = $this->getSource(); - - return $validationGroups; + return [Constraint::DEFAULT_GROUP, $this->getSource()]; } public function getId(): ?UuidInterface diff --git a/src/Form/Mod/ModFormType.php b/src/Form/Mod/ModFormType.php index 09435eb7..2d52a748 100644 --- a/src/Form/Mod/ModFormType.php +++ b/src/Form/Mod/ModFormType.php @@ -95,7 +95,7 @@ public function configureOptions(OptionsResolver $resolver): void ]); } - protected function addChangeStatusType(FormBuilderInterface $builder): void + private function addChangeStatusType(FormBuilderInterface $builder): void { /** @var User $currentUser */ $currentUser = $this->security->getUser(); diff --git a/src/Form/ModGroup/DataTransformer/ModGroupFormDtoDataTransformer.php b/src/Form/ModGroup/DataTransformer/ModGroupFormDtoDataTransformer.php index cb1bb942..2b668c2c 100644 --- a/src/Form/ModGroup/DataTransformer/ModGroupFormDtoDataTransformer.php +++ b/src/Form/ModGroup/DataTransformer/ModGroupFormDtoDataTransformer.php @@ -4,68 +4,43 @@ namespace App\Form\ModGroup\DataTransformer; -use App\Entity\AbstractEntity; use App\Entity\ModGroup\ModGroup; -use App\Form\FormDtoInterface; use App\Form\ModGroup\Dto\ModGroupFormDto; -use App\Form\RegisteredDataTransformerInterface; use Ramsey\Uuid\Uuid; -class ModGroupFormDtoDataTransformer implements RegisteredDataTransformerInterface +class ModGroupFormDtoDataTransformer { - /** - * @param ModGroupFormDto $formDto - * @param null|ModGroup $entity - * - * @return ModGroup - */ - public function transformToEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): AbstractEntity + public function transformToEntity(ModGroupFormDto $modGroupFormDto, ModGroup $modGroup = null): ModGroup { - if (!$entity instanceof ModGroup) { + if (!$modGroup instanceof ModGroup) { return new ModGroup( Uuid::uuid4(), - $formDto->getName(), - $formDto->getDescription(), - $formDto->getMods() + $modGroupFormDto->getName(), + $modGroupFormDto->getDescription(), + $modGroupFormDto->getMods() ); } - $entity->update( - $formDto->getName(), - $formDto->getDescription(), - $formDto->getMods() + $modGroup->update( + $modGroupFormDto->getName(), + $modGroupFormDto->getDescription(), + $modGroupFormDto->getMods() ); - return $entity; + return $modGroup; } - /** - * @param ModGroupFormDto $formDto - * @param null|ModGroup $entity - * - * @return ModGroupFormDto - */ - public function transformFromEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): FormDtoInterface + public function transformFromEntity(ModGroupFormDto $modGroupFormDto, ModGroup $modGroup = null): ModGroupFormDto { - if (!$entity instanceof ModGroup) { - return $formDto; + if (!$modGroup instanceof ModGroup) { + return $modGroupFormDto; } - $formDto->setId($entity->getId()); - $formDto->setName($entity->getName()); - $formDto->setDescription($entity->getDescription()); - $formDto->setMods($entity->getMods()); + $modGroupFormDto->setId($modGroup->getId()); + $modGroupFormDto->setName($modGroup->getName()); + $modGroupFormDto->setDescription($modGroup->getDescription()); + $modGroupFormDto->setMods($modGroup->getMods()); - return $formDto; - } - - public function supportsTransformationToEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): bool - { - return $formDto instanceof ModGroupFormDto; - } - - public function supportsTransformationFromEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): bool - { - return $formDto instanceof ModGroupFormDto; + return $modGroupFormDto; } } diff --git a/src/Form/ModGroup/Dto/ModGroupFormDto.php b/src/Form/ModGroup/Dto/ModGroupFormDto.php index ffe04f1e..9fd3d241 100644 --- a/src/Form/ModGroup/Dto/ModGroupFormDto.php +++ b/src/Form/ModGroup/Dto/ModGroupFormDto.php @@ -5,7 +5,6 @@ namespace App\Form\ModGroup\Dto; use App\Entity\Mod\AbstractMod; -use App\Form\AbstractFormDto; use App\Validator\ModGroup\UniqueModGroupName; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; @@ -13,21 +12,21 @@ use Symfony\Component\Validator\Constraints as Assert; #[UniqueModGroupName(errorPath: 'name')] -class ModGroupFormDto extends AbstractFormDto +class ModGroupFormDto { - protected ?UuidInterface $id = null; + private ?UuidInterface $id = null; #[Assert\NotBlank] #[Assert\Length(max: 255)] - protected ?string $name = null; + private ?string $name = null; #[Assert\Length(min: 1, max: 255)] - protected ?string $description = null; + private ?string $description = null; /** * @var Collection */ - protected Collection $mods; + private Collection $mods; public function __construct() { diff --git a/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php b/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php index 962ae927..20821a0f 100644 --- a/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php +++ b/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php @@ -4,30 +4,21 @@ namespace App\Form\ModList\DataTransformer; -use App\Entity\AbstractEntity; use App\Entity\ModList\ModList; use App\Entity\Permissions\AbstractPermissions; use App\Entity\User\User; -use App\Form\FormDtoInterface; use App\Form\ModList\Dto\ModListFormDto; -use App\Form\RegisteredDataTransformerInterface; use Ramsey\Uuid\Uuid; use Symfony\Bundle\SecurityBundle\Security; -class ModListFormDtoDataTransformer implements RegisteredDataTransformerInterface +class ModListFormDtoDataTransformer { public function __construct( private Security $security ) { } - /** - * @param ModListFormDto $formDto - * @param null|ModList $entity - * - * @return ModList - */ - public function transformToEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): AbstractEntity + public function transformToEntity(ModListFormDto $modListFormDto, ModList $modList = null): ModList { /** @var User $currentUser */ $currentUser = $this->security->getUser(); @@ -37,68 +28,57 @@ public function transformToEntity(FormDtoInterface $formDto, AbstractEntity $ent ); // If user has permissions set selected user as owner. Otherwise assign current user. - $owner = $canUpdate ? $formDto->getOwner() : $currentUser; + $owner = $canUpdate ? $modListFormDto->getOwner() : $currentUser; - if (!$entity instanceof ModList) { + if (!$modList instanceof ModList) { return new ModList( Uuid::uuid4(), - $formDto->getName(), - $formDto->getDescription(), - $formDto->getMods(), - $formDto->getModGroups(), - $formDto->getDlcs(), + $modListFormDto->getName(), + $modListFormDto->getDescription(), + $modListFormDto->getMods(), + $modListFormDto->getModGroups(), + $modListFormDto->getDlcs(), $owner, - $formDto->isActive(), - $formDto->isApproved(), + $modListFormDto->isActive(), + $modListFormDto->isApproved(), ); } - $entity->update( - $formDto->getName(), - $formDto->getDescription(), - $formDto->getMods(), - $formDto->getModGroups(), - $formDto->getDlcs(), + $modList->update( + $modListFormDto->getName(), + $modListFormDto->getDescription(), + $modListFormDto->getMods(), + $modListFormDto->getModGroups(), + $modListFormDto->getDlcs(), $owner, - $formDto->isActive(), - $formDto->isApproved(), + $modListFormDto->isActive(), + $modListFormDto->isApproved(), ); - return $entity; + return $modList; } - /** - * @param ModListFormDto $formDto - * @param null|ModList $entity - * - * @return ModListFormDto - */ - public function transformFromEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): FormDtoInterface + public function transformFromEntity(ModListFormDto $modListFormDto, ModList $modList = null, bool $copy = false): ModListFormDto { - if (!$entity instanceof ModList) { - return $formDto; + if (!$modList instanceof ModList) { + return $modListFormDto; } - $formDto->setId($entity->getId()); - $formDto->setName($entity->getName()); - $formDto->setDescription($entity->getDescription()); - $formDto->setMods($entity->getMods()); - $formDto->setModGroups($entity->getModGroups()); - $formDto->setDlcs($entity->getDlcs()); - $formDto->setOwner($entity->getOwner()); - $formDto->setActive($entity->isActive()); - $formDto->setApproved($entity->isApproved()); + $modListFormDto->setId($modList->getId()); + $modListFormDto->setName($modList->getName()); + $modListFormDto->setDescription($modList->getDescription()); + $modListFormDto->setMods($modList->getMods()); + $modListFormDto->setModGroups($modList->getModGroups()); + $modListFormDto->setDlcs($modList->getDlcs()); + $modListFormDto->setOwner($modList->getOwner()); + $modListFormDto->setActive($modList->isActive()); + $modListFormDto->setApproved($modList->isApproved()); - return $formDto; - } - - public function supportsTransformationToEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): bool - { - return $formDto instanceof ModListFormDto; - } + if ($copy) { + $modListFormDto->setId(null); // Entity will be treated as new by the unique name validator + $modListFormDto->setApproved(false); // Reset approval status + } - public function supportsTransformationFromEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): bool - { - return $formDto instanceof ModListFormDto; + return $modListFormDto; } } diff --git a/src/Form/ModList/Dto/ModListFormDto.php b/src/Form/ModList/Dto/ModListFormDto.php index e3e72e3c..1155a2cc 100644 --- a/src/Form/ModList/Dto/ModListFormDto.php +++ b/src/Form/ModList/Dto/ModListFormDto.php @@ -8,7 +8,6 @@ use App\Entity\Mod\AbstractMod; use App\Entity\ModGroup\ModGroup; use App\Entity\User\User; -use App\Form\AbstractFormDto; use App\Validator\ModList\UniqueModListName; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; @@ -16,37 +15,37 @@ use Symfony\Component\Validator\Constraints as Assert; #[UniqueModListName(errorPath: 'name')] -class ModListFormDto extends AbstractFormDto +class ModListFormDto { - protected ?UuidInterface $id = null; + private ?UuidInterface $id = null; #[Assert\NotBlank] #[Assert\Length(max: 255)] - protected ?string $name = null; + private ?string $name = null; #[Assert\Length(min: 1, max: 255)] - protected ?string $description = null; + private ?string $description = null; /** * @var Collection */ - protected Collection $mods; + private Collection $mods; /** * @var Collection */ - protected Collection $modGroups; + private Collection $modGroups; /** * @var Collection */ - protected Collection $dlcs; + private Collection $dlcs; - protected ?User $owner = null; + private ?User $owner = null; - protected bool $active = true; + private bool $active = true; - protected bool $approved = false; + private bool $approved = false; public function __construct() { diff --git a/src/Form/ModList/ModListFormType.php b/src/Form/ModList/ModListFormType.php index b7254728..0734cbbf 100644 --- a/src/Form/ModList/ModListFormType.php +++ b/src/Form/ModList/ModListFormType.php @@ -99,7 +99,7 @@ public function configureOptions(OptionsResolver $resolver): void ]); } - protected function addOwnerType(FormBuilderInterface $builder): void + private function addOwnerType(FormBuilderInterface $builder): void { /** @var User $currentUser */ $currentUser = $this->security->getUser(); @@ -138,7 +138,7 @@ protected function addOwnerType(FormBuilderInterface $builder): void $builder->add('owner', EntityType::class, $ownerTypeConfig); } - protected function addApprovedType(FormBuilderInterface $builder): void + private function addApprovedType(FormBuilderInterface $builder): void { /** @var User $currentUser */ $currentUser = $this->security->getUser(); diff --git a/src/Form/RegisteredDataTransformerInterface.php b/src/Form/RegisteredDataTransformerInterface.php deleted file mode 100644 index 22e17d62..00000000 --- a/src/Form/RegisteredDataTransformerInterface.php +++ /dev/null @@ -1,14 +0,0 @@ -update( - $entity->getUsername(), - $entity->getEmail(), - $entity->getExternalId(), - $formDto->getPermissions(), - $entity->getUserGroups(), - $entity->getAvatarHash(), - $formDto->getSteamId(), + $user->update( + $user->getUsername(), + $user->getEmail(), + $user->getExternalId(), + $userFormDto->getPermissions(), + $user->getUserGroups(), + $user->getAvatarHash(), + $userFormDto->getSteamId(), ); - return $entity; + return $user; } - /** - * @param UserFormDto $formDto - * @param null|User $entity - * - * @return UserFormDto - */ - public function transformFromEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): FormDtoInterface + public function transformFromEntity(UserFormDto $userFormDto, User $user = null): UserFormDto { - $formDto->setId($entity?->getId()); - $formDto->setSteamId($entity?->getSteamId()); - $formDto->setPermissions($entity?->getPermissions()); + $userFormDto->setId($user?->getId()); + $userFormDto->setSteamId($user?->getSteamId()); + $userFormDto->setPermissions($user?->getPermissions()); - return $formDto; - } - - public function supportsTransformationToEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): bool - { - return $formDto instanceof UserFormDto && $entity instanceof User; - } - - public function supportsTransformationFromEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): bool - { - return $formDto instanceof UserFormDto && $entity instanceof User; + return $userFormDto; } } diff --git a/src/Form/User/Dto/UserFormDto.php b/src/Form/User/Dto/UserFormDto.php index 4affbe59..06ec91d0 100644 --- a/src/Form/User/Dto/UserFormDto.php +++ b/src/Form/User/Dto/UserFormDto.php @@ -5,20 +5,19 @@ namespace App\Form\User\Dto; use App\Entity\Permissions\UserPermissions; -use App\Form\AbstractFormDto; use App\Validator\SteamProfileId; use App\Validator\User\UniqueUserSteamId; use Ramsey\Uuid\UuidInterface; #[UniqueUserSteamId(errorPath: 'steamId')] -class UserFormDto extends AbstractFormDto +class UserFormDto { - protected ?UuidInterface $id = null; + private ?UuidInterface $id = null; #[SteamProfileId] - protected ?int $steamId = null; + private ?int $steamId = null; - protected ?UserPermissions $permissions = null; + private ?UserPermissions $permissions = null; public function getId(): ?UuidInterface { diff --git a/src/Form/UserGroup/DataTransformer/UserGroupFormDtoDataTransformer.php b/src/Form/UserGroup/DataTransformer/UserGroupFormDtoDataTransformer.php index 626bfecd..5d9a4bcd 100644 --- a/src/Form/UserGroup/DataTransformer/UserGroupFormDtoDataTransformer.php +++ b/src/Form/UserGroup/DataTransformer/UserGroupFormDtoDataTransformer.php @@ -4,72 +4,46 @@ namespace App\Form\UserGroup\DataTransformer; -use App\Entity\AbstractEntity; use App\Entity\UserGroup\UserGroup; -use App\Form\FormDtoInterface; -use App\Form\RegisteredDataTransformerInterface; use App\Form\UserGroup\Dto\UserGroupFormDto; use Ramsey\Uuid\Uuid; -class UserGroupFormDtoDataTransformer implements RegisteredDataTransformerInterface +class UserGroupFormDtoDataTransformer { - /** - * @param UserGroupFormDto $formDto - * @param null|UserGroup $entity - * - * @return UserGroup - */ - public function transformToEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): AbstractEntity + public function transformToEntity(UserGroupFormDto $userGroupFormDto, UserGroup $userGroup = null): UserGroup { - if (!$entity instanceof UserGroup) { + if (!$userGroup instanceof UserGroup) { return new UserGroup( Uuid::uuid4(), - $formDto->getName(), - $formDto->getDescription(), - $formDto->getPermissions(), - $formDto->getUsers() + $userGroupFormDto->getName(), + $userGroupFormDto->getDescription(), + $userGroupFormDto->getPermissions(), + $userGroupFormDto->getUsers() ); } - $entity->update( - $formDto->getName(), - $formDto->getDescription(), - $formDto->getPermissions(), - $formDto->getUsers() + $userGroup->update( + $userGroupFormDto->getName(), + $userGroupFormDto->getDescription(), + $userGroupFormDto->getPermissions(), + $userGroupFormDto->getUsers() ); - return $entity; + return $userGroup; } - /** - * @param UserGroupFormDto $formDto - * @param null|UserGroup $entity - * - * @return UserGroupFormDto - */ - public function transformFromEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): FormDtoInterface + public function transformFromEntity(UserGroupFormDto $userGroupFormDto, UserGroup $userGroup = null): UserGroupFormDto { - /** @var UserGroup $entity */ - if (!$entity instanceof UserGroup) { - return $formDto; + if (!$userGroup instanceof UserGroup) { + return $userGroupFormDto; } - $formDto->setId($entity->getId()); - $formDto->setName($entity->getName()); - $formDto->setDescription($entity->getDescription()); - $formDto->setPermissions($entity->getPermissions()); - $formDto->setUsers($entity->getUsers()); + $userGroupFormDto->setId($userGroup->getId()); + $userGroupFormDto->setName($userGroup->getName()); + $userGroupFormDto->setDescription($userGroup->getDescription()); + $userGroupFormDto->setPermissions($userGroup->getPermissions()); + $userGroupFormDto->setUsers($userGroup->getUsers()); - return $formDto; - } - - public function supportsTransformationToEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): bool - { - return $formDto instanceof UserGroupFormDto; - } - - public function supportsTransformationFromEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): bool - { - return $formDto instanceof UserGroupFormDto; + return $userGroupFormDto; } } diff --git a/src/Form/UserGroup/Dto/UserGroupFormDto.php b/src/Form/UserGroup/Dto/UserGroupFormDto.php index 7697d921..5f6e83cd 100644 --- a/src/Form/UserGroup/Dto/UserGroupFormDto.php +++ b/src/Form/UserGroup/Dto/UserGroupFormDto.php @@ -6,7 +6,6 @@ use App\Entity\Permissions\UserGroupPermissions; use App\Entity\User\User; -use App\Form\AbstractFormDto; use App\Validator\UserGroup\UniqueUserGroupName; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; @@ -15,20 +14,20 @@ use Symfony\Component\Validator\Constraints as Assert; #[UniqueUserGroupName(errorPath: 'name')] -class UserGroupFormDto extends AbstractFormDto +class UserGroupFormDto { - protected ?UuidInterface $id = null; + private ?UuidInterface $id = null; #[Assert\NotBlank] #[Assert\Length(max: 255)] - protected ?string $name = null; + private ?string $name = null; #[Assert\Length(min: 1, max: 255)] - protected ?string $description = null; + private ?string $description = null; - protected ?UserGroupPermissions $permissions = null; + private ?UserGroupPermissions $permissions = null; - protected Collection $users; + private Collection $users; public function __construct() {