fix: duplicate NS violates unique constraint

This commit is contained in:
Maël Gangloff 2024-11-02 16:25:01 +01:00
parent 79a5a1d35a
commit 500b901b7a
No known key found for this signature in database
GPG Key ID: 11FDC81C24A7F629

View File

@ -315,19 +315,20 @@ readonly class RDAPService
'ldhName' => strtolower($rdapNameserver['ldhName']),
]);
$domainNS = $domain->getNameservers()->findFirst(fn (int $key, Nameserver $ns) => $ns->getLdhName() === $rdapNameserver['ldhName']);
$existingDomainNS = $domain->getNameservers()->findFirst(fn (int $key, Nameserver $ns) => $ns->getLdhName() === $rdapNameserver['ldhName']);
if (null !== $domainNS) {
$nameserver = $domainNS;
}
if (null === $nameserver) {
if (null !== $existingDomainNS) {
$nameserver = $existingDomainNS;
} elseif (null === $nameserver) {
$nameserver = new Nameserver();
}
$nameserver->setLdhName($rdapNameserver['ldhName']);
if (!array_key_exists('entities', $rdapNameserver) || !is_array($rdapNameserver['entities'])) {
$domain->addNameserver($nameserver);
if (!$domain->getNameservers()->contains($nameserver)) {
$domain->addNameserver($nameserver);
}
continue;
}
@ -365,7 +366,9 @@ readonly class RDAPService
->setRoles($roles));
}
$domain->addNameserver($nameserver);
if (!$domain->getNameservers()->contains($nameserver)) {
$domain->addNameserver($nameserver);
}
}
} else {
$this->logger->warning('The domain name {idnDomain} has no nameservers.', [