Completed
Push — develop ( b48ec5...ad5b3d )
by Nate
08:03
created

ConnectionHelper   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 7
lcom 0
cbo 2
dl 0
loc 48
ccs 0
cts 28
cp 0
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A resolveConnection() 0 12 3
A resolveIntegrationConnection() 0 22 4
1
<?php
2
3
/**
4
 * @copyright  Copyright (c) Flipbox Digital Limited
5
 * @license    https://flipboxfactory.com/software/hubspot/license
6
 * @link       https://www.flipboxfactory.com/software/hubspot/
7
 */
8
9
namespace flipbox\hubspot\helpers;
10
11
use flipbox\hubspot\connections\ConnectionInterface;
12
use flipbox\hubspot\connections\IntegrationConnectionInterface;
13
use flipbox\hubspot\HubSpot;
14
use flipbox\hubspot\services\Connections;
15
use yii\base\InvalidConfigException;
16
17
/**
18
 * @author Flipbox Factory <[email protected]>
19
 * @since 1.0.0
20
 */
21
class ConnectionHelper
22
{
23
    /**
24
     * @param $connection
25
     * @return ConnectionInterface
26
     * @throws InvalidConfigException
27
     */
28
    public static function resolveConnection($connection): ConnectionInterface
29
    {
30
        if ($connection instanceof ConnectionInterface) {
31
            return $connection;
32
        }
33
34
        if ($connection === null) {
35
            $connection = Connections::DEFAULT_CONNECTION;
36
        }
37
38
        return HubSpot::getInstance()->getConnections()->get($connection);
39
    }
40
41
    /**
42
     * @param string|IntegrationConnectionInterface $connection
43
     * @return IntegrationConnectionInterface
44
     * @throws InvalidConfigException
45
     */
46
    public static function resolveIntegrationConnection($connection): IntegrationConnectionInterface
47
    {
48
        if ($connection instanceof IntegrationConnectionInterface) {
49
            return $connection;
50
        }
51
52
        if ($connection === null) {
53
            $connection = Connections::DEFAULT_INTEGRATION_CONNECTION;
54
        }
55
56
        $connection = HubSpot::getInstance()->getConnections()->get($connection);
57
58
        if (!$connection instanceof IntegrationConnectionInterface) {
59
            throw new InvalidConfigException(sprintf(
60
                "Integration Connection must be an instance of '%s', '%s' given.",
61
                IntegrationConnectionInterface::class,
62
                get_class($connection)
63
            ));
64
        }
65
66
        return $connection;
67
    }
68
}
69