Test Failed
Push — master ( a6b51e...5fffdb )
by Gabriel
08:05
created

ModelsHelper::useClientsManager()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 1
dl 0
loc 4
rs 10
c 0
b 0
f 0
ccs 3
cts 3
cp 1
crap 1
1
<?php
2
3
namespace ByTIC\Hello\Utility;
4
5
use ByTIC\Hello\Models\AccessTokens\Tokens;
6
use ByTIC\Hello\Models\AuthCodes\AuthCodes;
7
use ByTIC\Hello\Models\Clients\Clients;
8
use ByTIC\Hello\Models\RefreshTokens\RefreshTokens;
9
use ByTIC\Hello\Models\Scopes\Scopes;
10
use League\OAuth2\Server\Repositories\AccessTokenRepositoryInterface;
11
use League\OAuth2\Server\Repositories\AuthCodeRepositoryInterface;
12
use League\OAuth2\Server\Repositories\ClientRepositoryInterface;
13
use League\OAuth2\Server\Repositories\RefreshTokenRepositoryInterface;
14
use League\OAuth2\Server\Repositories\ScopeRepositoryInterface;
15
use League\OAuth2\Server\Repositories\UserRepositoryInterface;
16
use Nip\Records\Locator\ModelLocator;
17
use Nip\Records\RecordManager;
18
19
/**
20
 * Class ModelsHelper
21
 * @package ByTIC\Hello\Utility
22
 */
23
class ModelsHelper
24
{
25
    protected static $repositories = [
26
        AccessTokenRepositoryInterface::class => Tokens::class,
27
        ClientRepositoryInterface::class => Clients::class,
28
        RefreshTokenRepositoryInterface::class => RefreshTokens::class,
29
        ScopeRepositoryInterface::class => Scopes::class,
30
        AuthCodeRepositoryInterface::class => AuthCodes::class,
31
        UserRepositoryInterface::class => null,
32
    ];
33
34
    /**
35
     * @return Clients|\Nip\Records\AbstractModels\RecordManager
36
     */
37 8
    public static function clients()
38
    {
39 8
        return static::getRepository(ClientRepositoryInterface::class);
40
    }
41
42
    /**
43
     * @param RecordManager $manager
44
     */
45 6
    public static function useClientsManager(RecordManager $manager)
46
    {
47 6
        ModelLocator::set(Clients::class, $manager);
48 6
    }
49
50
    /**
51
     * @return Tokens|\Nip\Records\AbstractModels\RecordManager
52
     */
53 2
    public static function accessTokens()
54
    {
55 2
        return static::getRepository(AccessTokenRepositoryInterface::class);
56
    }
57
58
    /**
59
     * @return Scopes|\Nip\Records\AbstractModels\RecordManager
60
     */
61 2
    public static function scopes()
62
    {
63 2
        return static::getRepository(ScopeRepositoryInterface::class);
64
    }
65
66
    /**
67
     * @param $alias
68
     * @return \Nip\Records\AbstractModels\RecordManager
69
     */
70 8
    protected static function getRepository($alias)
71
    {
72 8
        $class = static::$repositories[$alias];
73 8
        return ModelLocator::get($class);
74
    }
75
76
    /**
77
     * @return array
78
     */
79 1
    public static function repositories()
80
    {
81 1
        return static::$repositories;
82
    }
83
}
84