feat: add delete property on Event

This commit is contained in:
Maël Gangloff
2024-09-01 21:26:07 +02:00
parent 0b4fc8b061
commit f36116afa9
7 changed files with 83 additions and 10 deletions

View File

@@ -25,7 +25,7 @@ class DomainRefreshController extends AbstractController
private readonly RDAPService $RDAPService,
private readonly RateLimiterFactory $rdapRequestsLimiter,
private readonly MessageBusInterface $bus,
private readonly LoggerInterface $logger
private readonly LoggerInterface $logger, private readonly KernelInterface $kernel
) {
}
@@ -55,6 +55,7 @@ class DomainRefreshController extends AbstractController
&& !$domain->getDeleted()
&& ($domain->getUpdatedAt()->diff(new \DateTimeImmutable('now'))->days < 7)
&& !$this->RDAPService::isToBeWatchClosely($domain, $domain->getUpdatedAt())
&& !$this->kernel->isDebug()
) {
$this->logger->info('It is not necessary to update the information of the domain name {idnDomain} with the RDAP protocol.', [
'idnDomain' => $idnDomain,

View File

@@ -100,9 +100,9 @@ class Domain
#[Groups(['domain:item'])]
private ?Tld $tld = null;
#[ORM\Column]
#[ORM\Column(nullable: false)]
#[Groups(['domain:item'])]
private ?bool $deleted = null;
private ?bool $deleted;
public function __construct()
{

View File

@@ -21,6 +21,15 @@ class Event
#[Groups(['event:list'])]
private ?\DateTimeImmutable $date = null;
#[ORM\Column]
#[Groups(['event:list'])]
private ?bool $deleted;
public function __construct()
{
$this->deleted = false;
}
public function getId(): ?int
{
return $this->id;
@@ -49,4 +58,16 @@ class Event
return $this;
}
public function getDeleted(): ?bool
{
return $this->deleted;
}
public function setDeleted(?bool $deleted): static
{
$this->deleted = $deleted;
return $this;
}
}

View File

@@ -218,6 +218,11 @@ readonly class RDAPService
$this->em->persist($domain);
$this->em->flush();
/** @var DomainEvent $event */
foreach ($domain->getEvents()->getIterator() as $event) {
$event->setDeleted(true);
}
foreach ($res['events'] as $rdapEvent) {
if ($rdapEvent['eventAction'] === EventAction::LastUpdateOfRDAPDatabase->value) {
continue;
@@ -234,7 +239,9 @@ readonly class RDAPService
}
$domain->addEvent($event
->setAction($rdapEvent['eventAction'])
->setDate(new \DateTimeImmutable($rdapEvent['eventDate'])));
->setDate(new \DateTimeImmutable($rdapEvent['eventDate']))
->setDeleted(false)
);
}
if (array_key_exists('entities', $res) && is_array($res['entities'])) {
@@ -399,6 +406,14 @@ readonly class RDAPService
return $entity;
}
/** @var EntityEvent $event */
foreach ($entity->getEvents()->getIterator() as $event) {
$event->setDeleted(true);
}
$this->em->persist($entity);
$this->em->flush();
foreach ($rdapEntity['events'] as $rdapEntityEvent) {
$eventAction = $rdapEntityEvent['eventAction'];
if ($eventAction === EventAction::LastChanged->value || $eventAction === EventAction::LastUpdateOfRDAPDatabase->value) {
@@ -410,13 +425,15 @@ readonly class RDAPService
]);
if (null !== $event) {
$event->setDeleted(false);
continue;
}
$entity->addEvent(
(new EntityEvent())
->setEntity($entity)
->setAction($rdapEntityEvent['eventAction'])
->setDate(new \DateTimeImmutable($rdapEntityEvent['eventDate'])));
->setDate(new \DateTimeImmutable($rdapEntityEvent['eventDate']))
->setDeleted(false));
}
return $entity;