refactor: move DQL in repositories

This commit is contained in:
Maël Gangloff
2025-10-22 16:16:27 +02:00
parent e3b3881baf
commit 597c744161
2 changed files with 16 additions and 10 deletions

View File

@@ -17,7 +17,7 @@ class DomainStatusRepository extends ServiceEntityRepository
parent::__construct($registry, DomainStatus::class); parent::__construct($registry, DomainStatus::class);
} }
public function findNewDomainStatus(Domain $domain, \DateTimeImmutable $updatedAt) public function findNewDomainStatus(Domain $domain, \DateTimeImmutable $updatedAt): ?DomainStatus
{ {
return $this->createQueryBuilder('ds') return $this->createQueryBuilder('ds')
->select() ->select()
@@ -30,6 +30,18 @@ class DomainStatusRepository extends ServiceEntityRepository
->getOneOrNullResult(); ->getOneOrNullResult();
} }
public function findLastDomainStatus(Domain $domain): ?DomainStatus
{
return $this->createQueryBuilder('ds')
->select()
->where('ds.domain = :domain')
->setParameter('domain', $domain)
->orderBy('ds.createdAt', 'DESC')
->setMaxResults(1)
->getQuery()
->getOneOrNullResult();
}
// /** // /**
// * @return DomainStatus[] Returns an array of DomainStatus objects // * @return DomainStatus[] Returns an array of DomainStatus objects
// */ // */

View File

@@ -80,7 +80,8 @@ class RDAPService
private readonly StatService $statService, private readonly StatService $statService,
private readonly InfluxdbService $influxService, private readonly InfluxdbService $influxService,
#[Autowire(param: 'influxdb_enabled')] #[Autowire(param: 'influxdb_enabled')]
private readonly bool $influxdbEnabled, private readonly DomainStatusRepository $domainStatusRepository, private readonly bool $influxdbEnabled,
private readonly DomainStatusRepository $domainStatusRepository,
) { ) {
} }
@@ -721,14 +722,7 @@ class RDAPService
private function calculateDaysFromStatus(Domain $domain, \DateTimeImmutable $now): ?int private function calculateDaysFromStatus(Domain $domain, \DateTimeImmutable $now): ?int
{ {
/** @var ?DomainStatus $lastStatus */ /** @var ?DomainStatus $lastStatus */
$lastStatus = $this->domainStatusRepository->createQueryBuilder('ds') $lastStatus = $this->domainStatusRepository->findLastDomainStatus($domain);
->select()
->where('ds.domain = :domain')
->setParameter('domain', $domain)
->orderBy('ds.createdAt', 'DESC')
->setMaxResults(1)
->getQuery()
->getOneOrNullResult();
if (null === $lastStatus) { if (null === $lastStatus) {
return null; return null;