ProviderTrait   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 6
lcom 1
cbo 2
dl 0
loc 42
ccs 0
cts 21
cp 0
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A setProvider() 0 5 1
A getProvider() 0 20 5
1
<?php
2
3
/**
4
 * @copyright  Copyright (c) Flipbox Digital Limited
5
 * @license    https://github.com/flipboxfactory/patron-salesforce/blob/master/LICENSE
6
 * @link       https://github.com/flipboxfactory/patron-salesforce
7
 */
8
9
namespace flipbox\patron\salesforce\connections;
10
11
use flipbox\patron\queries\ProviderQuery;
12
use Stevenmaguire\OAuth2\Client\Provider\Salesforce;
13
14
/**
15
 * @author Flipbox Factory <[email protected]>
16
 * @since 1.0.0
17
 */
18
trait ProviderTrait
19
{
20
    /**
21
     * @var mixed
22
     */
23
    public $provider;
24
25
    /**
26
     * @param $provider
27
     * @return $this
28
     */
29
    public function setProvider($provider)
30
    {
31
        $this->provider = $provider;
32
        return $this;
33
    }
34
35
    /**
36
     * @return Salesforce
37
     * @throws \yii\base\InvalidConfigException
38
     */
39
    public function getProvider(): Salesforce
40
    {
41
        if ($this->provider instanceof Salesforce) {
42
            return $this->provider;
43
        }
44
45
        // Get provider from settings
46
        if (null !== ($provider = $this->provider ?? null)) {
47
            $condition = [
48
                (is_numeric($provider) ? 'id' : 'handle') => $provider
49
            ];
50
            $provider = (new ProviderQuery($condition))->one();
51
        }
52
53
        if (!$provider instanceof Salesforce) {
54
            $provider = new Salesforce();
55
        }
56
57
        return $provider;
58
    }
59
}
60