Passed
Push — master ( ca77e6...fd95ee )
by Angel Fernando Quiroz
07:56
created

CourseFromRequestTrait::getSession()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 13
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 6
c 1
b 0
f 0
nc 4
nop 0
dl 0
loc 13
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
/* For licensing terms, see /license.txt */
6
7
namespace Chamilo\CoreBundle\Traits;
8
9
use Chamilo\CoreBundle\Entity\Course;
10
use Chamilo\CoreBundle\Entity\Session;
11
use Doctrine\ORM\EntityManagerInterface;
12
use Symfony\Component\HttpFoundation\Request;
13
use Symfony\Component\HttpFoundation\RequestStack;
14
15
trait CourseFromRequestTrait
16
{
17
    protected RequestStack $requestStack;
18
    protected EntityManagerInterface $entityManager;
19
20
    public function getRequest(): ?Request
21
    {
22
        return $this->requestStack->getMainRequest();
23
    }
24
25
    public function getCourse(): ?Course
26
    {
27
        $request = $this->getRequest();
28
29
        if ($request) {
30
            $courseId = $request->getSession()->get('cid', 0);
31
        }
32
33
        if (empty($courseId)) {
34
            return null;
35
        }
36
37
        return $this->entityManager->find(Course::class, $courseId);
38
    }
39
40
    public function getSession(): ?Session
41
    {
42
        $request = $this->getRequest();
43
44
        if ($request) {
45
            $sessionId = $request->getSession()->get('sid', 0);
46
        }
47
48
        if (empty($sessionId)) {
49
            return null;
50
        }
51
52
        return $this->entityManager->find(Session::class, $sessionId);
53
    }
54
}
55