Passed
Pull Request — 1.11.x (#4368)
by Angel Fernando Quiroz
08:40
created

BaseStatement::generateAttachments()   A

Complexity

Conditions 5
Paths 7

Size

Total Lines 44
Code Lines 26

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 5
eloc 26
c 0
b 0
f 0
nc 7
nop 2
dl 0
loc 44
rs 9.1928
1
<?php
2
3
/* For licensing terms, see /license.txt */
4
5
namespace Chamilo\PluginBundle\XApi\ToolExperience\Statement;
6
7
use Chamilo\PluginBundle\XApi\ToolExperience\Activity\Course as CourseActivity;
8
use Chamilo\PluginBundle\XApi\ToolExperience\Activity\Site as SiteActivity;
9
use Xabbuh\XApi\Model\Context;
10
use Xabbuh\XApi\Model\ContextActivities;
11
use Xabbuh\XApi\Model\Statement;
12
use Xabbuh\XApi\Model\StatementId;
13
use Xabbuh\XApi\Model\Uuid;
14
use XApiPlugin;
15
16
/**
17
 * Class BaseStatement.
18
 *
19
 * @package Chamilo\PluginBundle\XApi\ToolExperience\Statement
20
 */
21
abstract class BaseStatement
22
{
23
    abstract public function generate(): Statement;
24
25
    protected function generateStatementId(string $type): StatementId
26
    {
27
        $uuid = Uuid::uuid5(
28
            XApiPlugin::create()->get(XApiPlugin::SETTING_UUID_NAMESPACE),
29
            uniqid($type)
30
        );
31
32
        return StatementId::fromUuid($uuid);
33
    }
34
35
    protected function generateContext(): Context
36
    {
37
        $platform = api_get_setting('Institution').' - '.api_get_setting('siteName');
38
39
        $groupingActivities = [];
40
        $groupingActivities[] = (new SiteActivity())->generate();
41
42
        if (api_get_course_id()) {
43
            $groupingActivities[] = (new CourseActivity())->generate();
44
        }
45
46
        return (new Context())
47
            ->withPlatform($platform)
48
            ->withLanguage(api_get_language_isocode())
49
            ->withContextActivities(
50
                new ContextActivities(null, $groupingActivities)
51
            );
52
    }
53
}
54