Passed
Push — master ( 339de6...726bd3 )
by Julito
14:57
created

QuestionRepository::retrieveFirstByCategorySlug()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 9
nc 1
nop 1
dl 0
loc 13
rs 9.9666
c 0
b 0
f 0
1
<?php
2
/* For licensing terms, see /license.txt */
3
4
namespace Chamilo\FaqBundle\Repository;
5
6
use Chamilo\FaqBundle\Entity\Question;
7
use Doctrine\ORM\EntityRepository;
8
9
/**
10
 * Class QuestionRepository.
11
 *
12
 * @package Genj\FaqBundle\Entity
13
 */
14
class QuestionRepository extends EntityRepository
15
{
16
    /**
17
     * @param string $categorySlug
18
     *
19
     * @return Question|null
20
     */
21
    public function retrieveFirstByCategorySlug($categorySlug)
22
    {
23
        $query = $this->createQueryBuilder('q')
24
            ->join('q.category', 'c')
25
            ->join('c.translations', 't')
26
            ->where('t.slug = :categorySlug')
27
            ->orderBy('q.rank', 'ASC')
28
            ->setMaxResults(1)
29
            ->getQuery();
30
31
        $query->setParameter('categorySlug', $categorySlug);
32
33
        return $query->getOneOrNullResult();
34
    }
35
36
    /**
37
     * @param string $slug
38
     *
39
     * @return Question|null
40
     */
41
    public function getQuestionBySlug($slug)
42
    {
43
        $query = $this->createQueryBuilder('q')
44
            ->join('q.translations', 't')
45
            ->where('t.slug = :slug')
46
            ->orderBy('q.rank', 'ASC')
47
            ->setMaxResults(1)
48
            ->getQuery();
49
50
        $query->setParameter('slug', $slug);
51
52
        return $query->getOneOrNullResult();
53
    }
54
}
55