Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 30 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 1 |
TerminRepository | |
0.00% |
0 / 30 |
|
0.00% |
0 / 2 |
6 | |
0.00% |
0 / 1 |
getAllActive | |
0.00% |
0 / 10 |
|
0.00% |
0 / 1 |
2 | |||
search | |
0.00% |
0 / 20 |
|
0.00% |
0 / 1 |
2 |
1 | <?php |
2 | |
3 | namespace Olz\Repository\Termine; |
4 | |
5 | use Doctrine\Common\Collections\Collection; |
6 | use Doctrine\Common\Collections\Criteria; |
7 | use Doctrine\Common\Collections\Order; |
8 | use Olz\Entity\Termine\Termin; |
9 | use Olz\Repository\Common\OlzRepository; |
10 | |
11 | /** |
12 | * @extends OlzRepository<Termin> |
13 | */ |
14 | class TerminRepository extends OlzRepository { |
15 | /** @return Collection<int, Termin>&iterable<Termin> */ |
16 | public function getAllActive(): Collection { |
17 | $is_not_archived = $this->termineUtils()->getIsNotArchivedCriteria(); |
18 | $criteria = Criteria::create() |
19 | ->where(Criteria::expr()->andX( |
20 | $is_not_archived, |
21 | Criteria::expr()->eq('on_off', 1), |
22 | )) |
23 | ->setFirstResult(0) |
24 | ->setMaxResults(1000000) |
25 | ; |
26 | return $this->matching($criteria); |
27 | } |
28 | |
29 | /** |
30 | * @param string[] $terms |
31 | * |
32 | * @return Collection<int, Termin>&iterable<Termin> |
33 | */ |
34 | public function search(array $terms): Collection { |
35 | $is_not_archived = $this->termineUtils()->getIsNotArchivedCriteria(); |
36 | $criteria = Criteria::create() |
37 | ->where(Criteria::expr()->andX( |
38 | $is_not_archived, |
39 | Criteria::expr()->eq('on_off', 1), |
40 | ...array_map(fn ($term) => Criteria::expr()->orX( |
41 | Criteria::expr()->contains('title', $term), |
42 | Criteria::expr()->contains('text', $term), |
43 | ...$this->searchUtils()->getDateCriteria('start_date', $term), |
44 | ...$this->searchUtils()->getDateCriteria('end_date', $term), |
45 | ), $terms), |
46 | )) |
47 | ->orderBy([ |
48 | 'start_date' => Order::Ascending, |
49 | 'start_time' => Order::Ascending, |
50 | ]) |
51 | ->setFirstResult(0) |
52 | ->setMaxResults(1000000) |
53 | ; |
54 | return $this->matching($criteria); |
55 | } |
56 | } |