Passed
Push — 1.11.x ( 080d0e...e78a37 )
by Angel Fernando Quiroz
10:16
created

LtiProvider   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
eloc 11
c 2
b 1
f 0
dl 0
loc 40
rs 10
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A launch() 0 9 2
A create() 0 5 2
A login() 0 5 1
1
<?php
2
/* For licensing terms, see /license.txt */
3
4
use Packback\Lti1p3;
5
use Packback\Lti1p3\LtiMessageLaunch;
6
use Packback\Lti1p3\LtiOidcLogin;
7
8
require_once __DIR__.'/../db/lti13_cookie.php';
9
require_once __DIR__.'/../db/lti13_cache.php';
10
require_once __DIR__.'/../db/lti13_database.php';
11
12
/**
13
 * Class LtiProvider.
14
 */
15
class LtiProvider
16
{
17
    /**
18
     * Get the class instance.
19
     *
20
     * @staticvar LtiProvider $result
21
     *
22
     * @return LtiProvider
23
     */
24
    public static function create()
25
    {
26
        static $result = null;
27
28
        return $result ?: $result = new self();
29
    }
30
31
    /**
32
     * Oidc login and register.
33
     *
34
     * @throws Lti1p3\OidcException
35
     */
36
    public function login($request = null)
37
    {
38
        LtiOidcLogin::new(new Lti13Database(), new Lti13Cache(), new Lti13Cookie())
39
            ->doOidcLoginRedirect(api_get_path(WEB_PLUGIN_PATH)."lti_provider/web/game.php", $request)
40
            ->doRedirect();
41
    }
42
43
    /**
44
     * Lti Message Launch.
45
     */
46
    public function launch(bool $fromCache = false, ?int $launchId = null): LtiMessageLaunch
47
    {
48
        if ($fromCache) {
49
            $launch = LtiMessageLaunch::fromCache($launchId, new Lti13Database(), new Lti13Cache());
50
        } else {
51
            $launch = LtiMessageLaunch::new(new Lti13Database(), new Lti13Cache(), new Lti13Cookie())->validate();
52
        }
53
54
        return $launch;
55
    }
56
}
57