Passed
Pull Request — master (#5062)
by Angel Fernando Quiroz
06:55
created

CourseFromRequestTrait   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 16
c 1
b 0
f 0
dl 0
loc 38
rs 10
wmc 7

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getSession() 0 13 3
A getCourse() 0 13 3
A getRequest() 0 3 1
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