docgen normalization for relation

This commit is contained in:
2021-12-09 12:44:41 +01:00
committed by Julie Lenaerts
parent 119a9981af
commit 2524229941
2 changed files with 58 additions and 0 deletions

View File

@@ -24,6 +24,8 @@ class RelationshipRepository implements ObjectRepository
private EntityRepository $repository;
private EntityManagerInterface $em;
public function __construct(EntityManagerInterface $em)
{
$this->repository = $em->getRepository(Relationship::class);
@@ -64,6 +66,30 @@ class RelationshipRepository implements ObjectRepository
->getResult();
}
public function countByPerson(Person $person): int
{
return $this->buildQueryByPerson($person)
->select('COUNT(p)')
->getQuery()
->getSingleScalarResult();
}
private function buildQueryByPerson(Person $person): QueryBuilder
{
$qb = $this->em->createQueryBuilder();
$qb
->from(Relationship::class, 'r')
->where(
$qb->expr()->orX(
$qb->expr()->eq('r.fromPerson', ':person'),
$qb->expr()->eq('r.toPerson', ':person')
)
)
->setParameter('person', $person);
return $qb;
}
public function findOneBy(array $criteria): ?Relationship
{
return $this->findOneBy($criteria);