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
{
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());
$deletedStatus = array_diff($domain->getStatus(), $status);
$domain->setStatus($status);
@ -381,7 +381,7 @@ class RDAPService
}
$domain->addEvent($event
->setAction($rdapEvent['eventAction'])
->setAction(strtolower($rdapEvent['eventAction']))
->setDate(new \DateTimeImmutable($rdapEvent['eventDate']))
->setDeleted(false));
@ -460,11 +460,12 @@ class RDAPService
private function fetchOrCreateNameserver(array $rdapNameserver, Domain $domain): Nameserver
{
$ldhName = strtolower(rtrim($rdapNameserver['ldhName'], '.'));
$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) {
return $existingDomainNS;
@ -472,7 +473,7 @@ class RDAPService
$nameserver = new Nameserver();
}
$nameserver->setLdhName($rdapNameserver['ldhName']);
$nameserver->setLdhName($ldhName);
return $nameserver;
}
@ -502,7 +503,7 @@ class RDAPService
$nameserver->addNameserverEntity($nameserverEntity
->setNameserver($nameserver)
->setEntity($entity)
->setStatus(array_unique($rdapNameserver['status']))
->setStatus(array_map(fn ($s) => strtolower($s), array_unique($rdapNameserver['status'])))
->setRoles($roles));
$this->em->persist($nameserverEntity);
@ -530,7 +531,7 @@ class RDAPService
$roles = array_merge(...$roles);
}
return $roles;
return array_map(fn ($x) => strtolower($x), $roles);
}
/**
@ -646,7 +647,7 @@ class RDAPService
$entity->addEvent(
(new EntityEvent())
->setEntity($entity)
->setAction($rdapEntityEvent['eventAction'])
->setAction(strtolower($rdapEntityEvent['eventAction']))
->setDate(new \DateTimeImmutable($rdapEntityEvent['eventDate']))
->setDeleted(false));
}