fix cs and add EntityToIdTransformer

This commit is contained in:
2022-05-20 15:52:02 +02:00
parent dba0e84781
commit b6e0379583
14 changed files with 308 additions and 97 deletions

View File

@@ -13,14 +13,10 @@ namespace Chill\CalendarBundle\Repository;
use Chill\CalendarBundle\Entity\CalendarRange;
use Chill\MainBundle\Entity\User;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\QueryBuilder;
use Doctrine\Persistence\ManagerRegistry;
use Doctrine\Persistence\ObjectRepository;
use Monolog\DateTimeImmutable;
use UnexpectedValueException;
class CalendarRangeRepository implements ObjectRepository
{
@@ -31,6 +27,13 @@ class CalendarRangeRepository implements ObjectRepository
$this->repository = $entityManager->getRepository(CalendarRange::class);
}
public function countByAvailableRangesForUser(User $user, \DateTimeImmutable $from, \DateTimeImmutable $to): int
{
return $this->buildQueryAvailableRangesForUser($user, $from, $to)
->select('COUNT(cr)')
->getQuery()->getSingleScalarResult();
}
public function find($id): ?CalendarRange
{
return $this->repository->find($id);
@@ -44,7 +47,6 @@ class CalendarRangeRepository implements ObjectRepository
return $this->repository->findAll();
}
/**
* @return array|CalendarRange[]
*/
@@ -53,23 +55,6 @@ class CalendarRangeRepository implements ObjectRepository
return $this->repository->findBy($criteria, $orderBy, $limit, $offset);
}
public function findOneBy(array $criteria): ?CalendarRange
{
return $this->repository->findOneBy($criteria);
}
public function getClassName(): string
{
return CalendarRange::class;
}
public function countByAvailableRangesForUser(User $user, \DateTimeImmutable $from, \DateTimeImmutable $to): int
{
return $this->buildQueryAvailableRangesForUser($user, $from, $to)
->select('COUNT(cr)')
->getQuery()->getSingleScalarResult();
}
/**
* @return array|CalendarRange[]
*/
@@ -82,17 +67,27 @@ class CalendarRangeRepository implements ObjectRepository
): array {
$qb = $this->buildQueryAvailableRangesForUser($user, $from, $to);
if ($limit !== null) {
if (null !== $limit) {
$qb->setMaxResults($limit);
}
if ($offset !== null) {
if (null !== $offset) {
$qb->setFirstResult($offset);
}
return $qb->getQuery()->getResult();
}
public function findOneBy(array $criteria): ?CalendarRange
{
return $this->repository->findOneBy($criteria);
}
public function getClassName(): string
{
return CalendarRange::class;
}
private function buildQueryAvailableRangesForUser(User $user, \DateTimeImmutable $from, \DateTimeImmutable $to): QueryBuilder
{
$qb = $this->repository->createQueryBuilder('cr');
@@ -110,9 +105,6 @@ class CalendarRangeRepository implements ObjectRepository
'user' => $user,
'startDate' => $from,
'endDate' => $to,
])
;
]);
}
}