Passed
Pull Request — master (#5629)
by Angel Fernando Quiroz
10:06 queued 01:32
created

PortfolioCategory::generate()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 25
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 16
c 1
b 0
f 0
nc 2
nop 0
dl 0
loc 25
rs 9.7333
1
<?php
2
3
declare(strict_types=1);
4
5
/* For licensing terms, see /license.txt */
6
7
namespace Chamilo\PluginBundle\XApi\ToolExperience\Activity;
8
9
use Chamilo\CoreBundle\Entity\PortfolioCategory as PortfolioCategoryEntity;
10
use Xabbuh\XApi\Model\Activity;
11
use Xabbuh\XApi\Model\Definition;
12
use Xabbuh\XApi\Model\IRI;
13
use Xabbuh\XApi\Model\LanguageMap;
14
15
/**
16
 * Class PortfolioCategory.
17
 */
18
class PortfolioCategory extends BaseActivity
19
{
20
    /**
21
     * @var PortfolioCategoryEntity
22
     */
23
    private $category;
24
25
    public function __construct(PortfolioCategoryEntity $category)
26
    {
27
        $this->category = $category;
28
    }
29
30
    public function generate(): Activity
31
    {
32
        $iri = $this->generateIri(
33
            WEB_PATH,
34
            'xapi/portfolio/',
35
            [
36
                'user' => $this->category->getUser()->getId(),
37
                'category' => $this->category->getId(),
38
            ]
39
        );
40
41
        $langIso = api_get_language_isocode();
42
43
        $categoryDescription = $this->category->getDescription();
44
45
        $definitionDescription = $categoryDescription
46
            ? LanguageMap::create([$langIso => $categoryDescription])
47
            : null;
48
49
        return new Activity(
50
            IRI::fromString($iri),
51
            new Definition(
52
                LanguageMap::create([$langIso => $this->category->getTitle()]),
53
                $definitionDescription,
54
                IRI::fromString('http://id.tincanapi.com/activitytype/category')
55
            )
56
        );
57
    }
58
}
59