fix: domain status list in lowercase

This commit is contained in:
Maël Gangloff 2025-10-19 14:21:52 +02:00
parent 213617c3c1
commit d81ee32122
No known key found for this signature in database
GPG Key ID: 11FDC81C24A7F629
2 changed files with 69 additions and 8 deletions

View File

@ -0,0 +1,60 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20251019120358 extends AbstractMigration
{
public function getDescription(): string
{
return 'Lowercase on columns';
}
public function up(Schema $schema): void
{
$this->addSql('UPDATE domain
SET status = (
SELECT jsonb_agg(lower(value::text)::jsonb)
FROM jsonb_array_elements(status) AS t(value)
)');
$this->addSql('UPDATE domain_status
SET add_status = (
SELECT jsonb_agg(lower(value::text)::jsonb)
FROM jsonb_array_elements(add_status) AS t(value)
), delete_status = (
SELECT jsonb_agg(lower(value::text)::jsonb)
FROM jsonb_array_elements(delete_status) AS t(value)
)');
$this->addSql('UPDATE domain_entity
SET roles = (
SELECT jsonb_agg(lower(value::text)::jsonb)
FROM jsonb_array_elements(roles) AS t(value)
)');
$this->addSql('UPDATE nameserver_entity
SET roles = (
SELECT jsonb_agg(lower(value::text)::jsonb)
FROM jsonb_array_elements(roles) AS t(value)
), status = (
SELECT jsonb_agg(lower(value::text)::jsonb)
FROM jsonb_array_elements(status) AS t(value)
)');
$this->addSql('UPDATE domain_event SET action = lower(action)');
$this->addSql('UPDATE entity_event SET action = lower(action)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
}
}

View File

@ -315,7 +315,7 @@ class RDAPService
private function updateDomainStatus(Domain $domain, array $rdapData): void private function updateDomainStatus(Domain $domain, array $rdapData): void
{ {
if (isset($rdapData['status']) && is_array($rdapData['status'])) { if (isset($rdapData['status']) && is_array($rdapData['status'])) {
$status = array_unique($rdapData['status']); $status = array_map(fn ($s) => strtolower($s), array_unique($rdapData['status']));
$addedStatus = array_diff($status, $domain->getStatus()); $addedStatus = array_diff($status, $domain->getStatus());
$deletedStatus = array_diff($domain->getStatus(), $status); $deletedStatus = array_diff($domain->getStatus(), $status);
$domain->setStatus($status); $domain->setStatus($status);
@ -381,7 +381,7 @@ class RDAPService
} }
$domain->addEvent($event $domain->addEvent($event
->setAction($rdapEvent['eventAction']) ->setAction(strtolower($rdapEvent['eventAction']))
->setDate(new \DateTimeImmutable($rdapEvent['eventDate'])) ->setDate(new \DateTimeImmutable($rdapEvent['eventDate']))
->setDeleted(false)); ->setDeleted(false));
@ -460,11 +460,12 @@ class RDAPService
private function fetchOrCreateNameserver(array $rdapNameserver, Domain $domain): Nameserver private function fetchOrCreateNameserver(array $rdapNameserver, Domain $domain): Nameserver
{ {
$ldhName = strtolower(rtrim($rdapNameserver['ldhName'], '.'));
$nameserver = $this->nameserverRepository->findOneBy([ $nameserver = $this->nameserverRepository->findOneBy([
'ldhName' => strtolower($rdapNameserver['ldhName']), 'ldhName' => $ldhName,
]); ]);
$existingDomainNS = $domain->getNameservers()->findFirst(fn (int $key, Nameserver $ns) => $ns->getLdhName() === $rdapNameserver['ldhName']); $existingDomainNS = $domain->getNameservers()->findFirst(fn (int $key, Nameserver $ns) => $ns->getLdhName() === $ldhName);
if (null !== $existingDomainNS) { if (null !== $existingDomainNS) {
return $existingDomainNS; return $existingDomainNS;
@ -472,7 +473,7 @@ class RDAPService
$nameserver = new Nameserver(); $nameserver = new Nameserver();
} }
$nameserver->setLdhName($rdapNameserver['ldhName']); $nameserver->setLdhName($ldhName);
return $nameserver; return $nameserver;
} }
@ -502,7 +503,7 @@ class RDAPService
$nameserver->addNameserverEntity($nameserverEntity $nameserver->addNameserverEntity($nameserverEntity
->setNameserver($nameserver) ->setNameserver($nameserver)
->setEntity($entity) ->setEntity($entity)
->setStatus(array_unique($rdapNameserver['status'])) ->setStatus(array_map(fn ($s) => strtolower($s), array_unique($rdapNameserver['status'])))
->setRoles($roles)); ->setRoles($roles));
$this->em->persist($nameserverEntity); $this->em->persist($nameserverEntity);
@ -530,7 +531,7 @@ class RDAPService
$roles = array_merge(...$roles); $roles = array_merge(...$roles);
} }
return $roles; return array_map(fn ($x) => strtolower($x), $roles);
} }
/** /**
@ -646,7 +647,7 @@ class RDAPService
$entity->addEvent( $entity->addEvent(
(new EntityEvent()) (new EntityEvent())
->setEntity($entity) ->setEntity($entity)
->setAction($rdapEntityEvent['eventAction']) ->setAction(strtolower($rdapEntityEvent['eventAction']))
->setDate(new \DateTimeImmutable($rdapEntityEvent['eventDate'])) ->setDate(new \DateTimeImmutable($rdapEntityEvent['eventDate']))
->setDeleted(false)); ->setDeleted(false));
} }