mirror of
https://github.com/maelgangloff/domain-watchdog.git
synced 2025-12-23 12:45:36 +00:00
refactor: processing of entity
This commit is contained in:
parent
66d9e8b112
commit
a3fb6dc873
@ -519,8 +519,10 @@ readonly class RDAPService
|
|||||||
*/
|
*/
|
||||||
private function registerEntity(array $rdapEntity, array $roles, string $domain, Tld $tld): Entity
|
private function registerEntity(array $rdapEntity, array $roles, string $domain, Tld $tld): Entity
|
||||||
{
|
{
|
||||||
/*
|
/**
|
||||||
* If the RDAP server transmits the entity's IANA number, it is used as a priority to identify the entity
|
* If the RDAP server transmits the entity's IANA number, it is used as a priority to identify the entity.
|
||||||
|
*
|
||||||
|
* @see https://datatracker.ietf.org/doc/html/rfc7483#section-4.8
|
||||||
*/
|
*/
|
||||||
$isIANAid = false;
|
$isIANAid = false;
|
||||||
if (isset($rdapEntity['publicIds'])) {
|
if (isset($rdapEntity['publicIds'])) {
|
||||||
@ -547,14 +549,15 @@ readonly class RDAPService
|
|||||||
|
|
||||||
$entity = $this->entityRepository->findOneBy([
|
$entity = $this->entityRepository->findOneBy([
|
||||||
'handle' => $rdapEntity['handle'],
|
'handle' => $rdapEntity['handle'],
|
||||||
'tld' => $tld,
|
'tld' => $isIANAid ? null : $tld,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if (null === $entity) {
|
if ($isIANAid && null !== $entity) {
|
||||||
$entity = $this->entityRepository->findOneBy([
|
return $entity;
|
||||||
'handle' => $rdapEntity['handle'],
|
}
|
||||||
'tld' => null,
|
|
||||||
]);
|
if ($isIANAid && null === $entity) {
|
||||||
|
throw new ServiceUnavailableHttpException('The server does not know the IANA identifier of this registrar ('.$rdapEntity['handle'].')');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (null === $entity) {
|
if (null === $entity) {
|
||||||
@ -567,11 +570,11 @@ readonly class RDAPService
|
|||||||
|
|
||||||
$entity->setHandle($rdapEntity['handle']);
|
$entity->setHandle($rdapEntity['handle']);
|
||||||
|
|
||||||
if (isset($rdapEntity['remarks']) && is_array($rdapEntity['remarks']) && null === $entity->getIanaAccreditation()->getStatus()) {
|
if (isset($rdapEntity['remarks']) && is_array($rdapEntity['remarks'])) {
|
||||||
$entity->setRemarks($rdapEntity['remarks']);
|
$entity->setRemarks($rdapEntity['remarks']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($rdapEntity['vcardArray']) && null === $entity->getIanaAccreditation()->getStatus()) {
|
if (isset($rdapEntity['vcardArray'])) {
|
||||||
if (empty($entity->getJCard())) {
|
if (empty($entity->getJCard())) {
|
||||||
if (!array_key_exists('elements', $rdapEntity['vcardArray'])) {
|
if (!array_key_exists('elements', $rdapEntity['vcardArray'])) {
|
||||||
$entity->setJCard($rdapEntity['vcardArray']);
|
$entity->setJCard($rdapEntity['vcardArray']);
|
||||||
@ -605,10 +608,7 @@ readonly class RDAPService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($isIANAid || !isset($rdapEntity['events']) || null !== $entity->getIanaAccreditation()->getStatus()) {
|
if (isset($rdapEntity['events'])) {
|
||||||
return $entity;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var EntityEvent $event */
|
/** @var EntityEvent $event */
|
||||||
foreach ($entity->getEvents()->getIterator() as $event) {
|
foreach ($entity->getEvents()->getIterator() as $event) {
|
||||||
$event->setDeleted(true);
|
$event->setDeleted(true);
|
||||||
@ -637,6 +637,7 @@ readonly class RDAPService
|
|||||||
->setDate(new \DateTimeImmutable($rdapEntityEvent['eventDate']))
|
->setDate(new \DateTimeImmutable($rdapEntityEvent['eventDate']))
|
||||||
->setDeleted(false));
|
->setDeleted(false));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$this->em->persist($entity);
|
$this->em->persist($entity);
|
||||||
$this->em->flush();
|
$this->em->flush();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user