Merge pull request #88 from vinceh121/bugfix/domain-events-refresh

fix: domain event refresh working one every two times
This commit is contained in:
Maël Gangloff 2025-10-20 22:51:16 +02:00 committed by GitHub
commit 1ae35231fe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 13 additions and 5 deletions

View File

@ -115,10 +115,10 @@ class WatchListController extends AbstractController
->where('de.domain = :domain')
->andWhere('de.action = \'expiration\'')
->andWhere('de.deleted = FALSE')
->setParameter('domain', $domain)
->orderBy('de.date', 'DESC')
->setMaxResults(1)
->getQuery()
->setParameter('domain', $domain)
->getOneOrNullResult();
if (!$domain->getDeleted() && null !== $exp && !in_array($domain, $domains)) {

View File

@ -21,8 +21,8 @@ class DomainRepository extends ServiceEntityRepository
return $this->createQueryBuilder('d')
->addSelect('events')
->leftJoin('d.events', 'events')
->where('d.tld = :tld')
->setParameter('tld', $tld)
->where('d.tld = :dot')
->setParameter('dot', $tld)
->getQuery()
->getResult();
}

View File

@ -168,8 +168,8 @@ class OfficialDataService
$this->tldRepository->createQueryBuilder('t')
->update()
->set('t.deletedAt', 'COALESCE(t.removalDate, CURRENT_TIMESTAMP())')
->where('t.tld != :tld')
->setParameter('tld', self::DOMAIN_DOT)
->where('t.tld != :dot')
->setParameter('dot', self::DOMAIN_DOT)
->getQuery()->execute();
$tldEntity = $this->tldRepository->findOneBy(['tld' => $tld]);
@ -181,6 +181,8 @@ class OfficialDataService
$this->logger->notice('New TLD detected according to IANA', [
'tld' => $tld,
]);
} else {
$this->em->refresh($tldEntity);
}
$type = $this->getTldType($tld);

View File

@ -378,6 +378,10 @@ class RDAPService
if (null === $event) {
$event = new DomainEvent();
} else {
// at this point Doctrine doesn't know that the events are
// deleted in the database, so refresh in order to make the diff work
$this->em->refresh($event);
}
$domain->addEvent($event
@ -421,6 +425,8 @@ class RDAPService
if (null === $domainEntity) {
$domainEntity = new DomainEntity();
} else {
$this->em->refresh($domainEntity);
}
$domain->addDomainEntity($domainEntity