Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 21 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 1 |
SkillLevelRepository | |
0.00% |
0 / 21 |
|
0.00% |
0 / 2 |
6 | |
0.00% |
0 / 1 |
getSkillLevelsForUserId | |
0.00% |
0 / 6 |
|
0.00% |
0 / 1 |
2 | |||
getSkillLevelsForUserIdInCategories | |
0.00% |
0 / 15 |
|
0.00% |
0 / 1 |
2 |
1 | <?php |
2 | |
3 | namespace Olz\Repository\Quiz; |
4 | |
5 | use Olz\Entity\Quiz\Skill; |
6 | use Olz\Entity\Quiz\SkillLevel; |
7 | use Olz\Repository\Common\OlzRepository; |
8 | |
9 | /** |
10 | * @extends OlzRepository<SkillLevel> |
11 | */ |
12 | class SkillLevelRepository extends OlzRepository { |
13 | protected string $entityClass = SkillLevel::class; |
14 | |
15 | /** @return array<SkillLevel> */ |
16 | public function getSkillLevelsForUserId(int $user_id): array { |
17 | $sane_user_id = intval($user_id); |
18 | $dql = " |
19 | SELECT sl |
20 | FROM {$this->entityClass} sl |
21 | WHERE sl.user = '{$sane_user_id}'"; |
22 | $query = $this->getEntityManager()->createQuery($dql); |
23 | return $query->getResult(); |
24 | } |
25 | |
26 | /** |
27 | * @param array<int> $category_ids |
28 | * |
29 | * @return array<SkillLevel> |
30 | */ |
31 | public function getSkillLevelsForUserIdInCategories(int $user_id, array $category_ids): array { |
32 | $sane_user_id = intval($user_id); |
33 | $skill_repo = $this->getEntityManager()->getRepository(Skill::class); |
34 | $skills = $skill_repo->getSkillsInCategories($category_ids); |
35 | $skill_ids = array_map( |
36 | function ($skill) { |
37 | return intval($skill->getId()); |
38 | }, |
39 | $skills, |
40 | ); |
41 | $skill_ids_sql = implode("','", $skill_ids); |
42 | $dql = " |
43 | SELECT sl |
44 | FROM {$this->entityClass} sl |
45 | WHERE sl.user = '{$sane_user_id}' AND sl.skill IN ('{$skill_ids_sql}')"; |
46 | $query = $this->getEntityManager()->createQuery($dql); |
47 | return $query->getResult(); |
48 | } |
49 | } |