Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 19 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 1 |
SkillLevelRepository | |
0.00% |
0 / 19 |
|
0.00% |
0 / 2 |
6 | |
0.00% |
0 / 1 |
getSkillLevelsForUserId | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
2 | |||
getSkillLevelsForUserIdInCategories | |
0.00% |
0 / 14 |
|
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 | /** @return array<SkillLevel> */ |
14 | public function getSkillLevelsForUserId(int $user_id): array { |
15 | $sane_user_id = intval($user_id); |
16 | $dql = " |
17 | SELECT sl |
18 | FROM SkillLevel sl |
19 | WHERE sl.user = '{$sane_user_id}'"; |
20 | $query = $this->getEntityManager()->createQuery($dql); |
21 | return $query->getResult(); |
22 | } |
23 | |
24 | /** |
25 | * @param array<int> $category_ids |
26 | * |
27 | * @return array<SkillLevel> |
28 | */ |
29 | public function getSkillLevelsForUserIdInCategories(int $user_id, array $category_ids): array { |
30 | $sane_user_id = intval($user_id); |
31 | $skill_repo = $this->getEntityManager()->getRepository(Skill::class); |
32 | $skills = $skill_repo->getSkillsInCategories($category_ids); |
33 | $skill_ids = array_map( |
34 | function ($skill) { |
35 | return intval($skill->getId()); |
36 | }, |
37 | $skills, |
38 | ); |
39 | $skill_ids_sql = implode("','", $skill_ids); |
40 | $dql = " |
41 | SELECT sl |
42 | FROM SkillLevel sl |
43 | WHERE sl.user = '{$sane_user_id}' AND sl.skill IN ('{$skill_ids_sql}')"; |
44 | $query = $this->getEntityManager()->createQuery($dql); |
45 | return $query->getResult(); |
46 | } |
47 | } |