Passed
Push — master ( 0c0a9d...5256fe )
by Alexandre
01:49
created

ResponseModeRepository::getResponseMode()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: Alexandre
5
 * Date: 28/01/2018
6
 * Time: 22:40
7
 */
8
9
namespace OAuth2\OpenID\Repositories;
10
11
12
use OAuth2\OpenID\ResponseModes\FragmentResponseMode;
13
use OAuth2\OpenID\ResponseModes\QueryResponseMode;
14
use OAuth2\OpenID\ResponseModes\ResponseModeInterface;
15
16
class ResponseModeRepository
17
{
18
    /**
19
     * @var array
20
     */
21
    private $responseModes;
22
23
    /**
24
     * StorageRepository constructor.
25
     * @param array|null $responseModes
26
     * @throws \Exception
27
     */
28
    public function __construct(array $responseModes)
29
    {
30
        $this->responseModes = $responseModes;
31
    }
32
33
    public function getDefaultResponseModeForMultipleValuedResponseType() : string {
34
        return 'fragment';
35
    }
36
37
    /**
38
     * @return array
39
     * @throws \Exception
40
     */
41
    public static function getDefaultResponseModes()
42
    {
43
        $queryResponseMode = new QueryResponseMode();
44
        $fragmentResponseMode = new FragmentResponseMode();
45
        return [
46
            $queryResponseMode->getResponseMode() => $queryResponseMode,
47
            $fragmentResponseMode->getResponseMode() => $fragmentResponseMode,
48
        ];
49
    }
50
51
    /**
52
     * @param string $responseMode
53
     * @return null|ResponseModeInterface
54
     */
55
    public function getResponseMode(string $responseMode): ?ResponseModeInterface
56
    {
57
        return $this->responseModes[$responseMode] ?? null;
58
    }
59
}