From 63f8dc168df5a8263c2902305e1e236805df78a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Gangloff?= Date: Sun, 21 Jul 2024 02:25:37 +0200 Subject: [PATCH] fix: entity handle can be an empty string --- assets/controllers.json | 15 +++++++++++++++ src/Entity/Domain.php | 2 ++ src/Entity/Entity.php | 3 +++ src/Entity/Nameserver.php | 2 ++ src/Service/RDAPService.php | 4 ++-- 5 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 assets/controllers.json diff --git a/assets/controllers.json b/assets/controllers.json new file mode 100644 index 0000000..c00bb6d --- /dev/null +++ b/assets/controllers.json @@ -0,0 +1,15 @@ +{ + "controllers": { + "@symfony/ux-turbo": { + "turbo-core": { + "enabled": true, + "fetch": "eager" + }, + "mercure-turbo-stream": { + "enabled": false, + "fetch": "eager" + } + } + }, + "entrypoints": [] +} \ No newline at end of file diff --git a/src/Entity/Domain.php b/src/Entity/Domain.php index 640046b..a3cf558 100644 --- a/src/Entity/Domain.php +++ b/src/Entity/Domain.php @@ -15,6 +15,7 @@ use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Mapping as ORM; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Component\Serializer\Attribute\Groups; +use Symfony\Component\Serializer\Attribute\SerializedName; #[ORM\Entity(repositoryClass: DomainRepository::class)] #[UniqueEntity('handle')] @@ -68,6 +69,7 @@ class Domain */ #[ORM\OneToMany(targetEntity: DomainEntity::class, mappedBy: 'domain', cascade: ['persist'], orphanRemoval: true)] #[Groups(['domain:item'])] + #[SerializedName('entities')] private Collection $domainEntities; #[ORM\Column(type: Types::SIMPLE_ARRAY)] diff --git a/src/Entity/Entity.php b/src/Entity/Entity.php index 79b22f1..18a899e 100644 --- a/src/Entity/Entity.php +++ b/src/Entity/Entity.php @@ -12,6 +12,7 @@ use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Serializer\Attribute\Groups; +use Symfony\Component\Serializer\Attribute\SerializedName; #[ORM\Entity(repositoryClass: EntityRepository::class)] #[ApiFilter(SearchFilter::class, properties: ['jCard' => 'partial'])] @@ -50,6 +51,7 @@ class Entity */ #[ORM\OneToMany(targetEntity: DomainEntity::class, mappedBy: 'entity', orphanRemoval: true)] #[Groups(['entity:item'])] + #[SerializedName('domains')] private Collection $domainEntities; /** @@ -57,6 +59,7 @@ class Entity */ #[ORM\OneToMany(targetEntity: NameserverEntity::class, mappedBy: 'entity')] #[Groups(['entity:item'])] + #[SerializedName('nameservers')] private Collection $nameserverEntities; /** diff --git a/src/Entity/Nameserver.php b/src/Entity/Nameserver.php index 16be6e8..67ad421 100644 --- a/src/Entity/Nameserver.php +++ b/src/Entity/Nameserver.php @@ -10,6 +10,7 @@ use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Serializer\Attribute\Groups; +use Symfony\Component\Serializer\Attribute\SerializedName; #[ORM\Entity(repositoryClass: NameserverRepository::class)] #[ApiResource( @@ -49,6 +50,7 @@ class Nameserver */ #[ORM\OneToMany(targetEntity: NameserverEntity::class, mappedBy: 'nameserver', cascade: ['persist'], orphanRemoval: true)] #[Groups(['nameserver:item', 'domain:item'])] + #[SerializedName('entities')] private Collection $nameserverEntities; /** diff --git a/src/Service/RDAPService.php b/src/Service/RDAPService.php index ed29f89..11abf73 100644 --- a/src/Service/RDAPService.php +++ b/src/Service/RDAPService.php @@ -113,7 +113,7 @@ readonly class RDAPService } foreach ($res['entities'] as $rdapEntity) { - if (!array_key_exists('handle', $rdapEntity)) continue; + if (!array_key_exists('handle', $rdapEntity) || $rdapEntity['handle'] === '') continue; $entity = $this->registerEntity($rdapEntity); $this->em->persist($entity); @@ -151,7 +151,7 @@ readonly class RDAPService } foreach ($rdapNameserver['entities'] as $rdapEntity) { - if (!array_key_exists('handle', $rdapEntity)) continue; + if (!array_key_exists('handle', $rdapEntity) || $rdapEntity['handle'] === '') continue; $entity = $this->registerEntity($rdapEntity); $this->em->persist($entity);