| @@ 56-83 (lines=28) @@ | ||
| 53 | * @param IdentityQuery $query |
|
| 54 | * @return \Doctrine\ORM\Query |
|
| 55 | */ |
|
| 56 | public function createSearchQuery(IdentityQuery $query) |
|
| 57 | { |
|
| 58 | $queryBuilder = $this->createQueryBuilder('i'); |
|
| 59 | ||
| 60 | $queryBuilder |
|
| 61 | ->where('i.institution = :institution') |
|
| 62 | ->setParameter('institution', $query->institution); |
|
| 63 | ||
| 64 | if ($query->nameId) { |
|
| 65 | $queryBuilder |
|
| 66 | ->andWhere('i.nameId = :nameId') |
|
| 67 | ->setParameter('nameId', $query->nameId); |
|
| 68 | } |
|
| 69 | ||
| 70 | if ($query->email) { |
|
| 71 | $queryBuilder |
|
| 72 | ->andWhere('MATCH_AGAINST(i.email, :email) > 0') |
|
| 73 | ->setParameter('email', $query->email); |
|
| 74 | } |
|
| 75 | ||
| 76 | if ($query->commonName) { |
|
| 77 | $queryBuilder |
|
| 78 | ->andWhere('MATCH_AGAINST(i.commonName, :commonName) > 0') |
|
| 79 | ->setParameter('commonName', $query->commonName); |
|
| 80 | } |
|
| 81 | ||
| 82 | return $queryBuilder->getQuery(); |
|
| 83 | } |
|
| 84 | ||
| 85 | /** |
|
| 86 | * @param string[] $nameIds |
|
| @@ 75-101 (lines=27) @@ | ||
| 72 | * @param RaCandidateQuery $query |
|
| 73 | * @return \Doctrine\ORM\Query |
|
| 74 | */ |
|
| 75 | public function createSearchQuery(RaCandidateQuery $query) |
|
| 76 | { |
|
| 77 | $queryBuilder = $this->createQueryBuilder('rac') |
|
| 78 | ->where('rac.institution = :institution') |
|
| 79 | ->setParameter('institution', $query->institution); |
|
| 80 | ||
| 81 | if ($query->commonName) { |
|
| 82 | $queryBuilder |
|
| 83 | ->andWhere('MATCH_AGAINST(rac.commonName, :commonName) > 0') |
|
| 84 | ->setParameter('commonName', $query->commonName); |
|
| 85 | } |
|
| 86 | ||
| 87 | if ($query->email) { |
|
| 88 | $queryBuilder |
|
| 89 | ->andWhere('MATCH_AGAINST(rac.email, :email) > 0') |
|
| 90 | ->setParameter('email', $query->email); |
|
| 91 | } |
|
| 92 | ||
| 93 | if (!empty($query->secondFactorTypes)) { |
|
| 94 | $queryBuilder |
|
| 95 | ->innerJoin(VettedSecondFactor::class, 'vsf') |
|
| 96 | ->andWhere('vsf.type IN (:secondFactorTypes)') |
|
| 97 | ->setParameter('secondFactorTypes', $query->secondFactorTypes); |
|
| 98 | } |
|
| 99 | ||
| 100 | return $queryBuilder->getQuery(); |
|
| 101 | } |
|
| 102 | ||
| 103 | /** |
|
| 104 | * @param string[] $sraaList |
|