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

ConnectionHelper::resolveConnection()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
dl 0
loc 12
ccs 0
cts 10
cp 0
rs 9.8666
c 0
b 0
f 0
cc 3
nc 3
nop 1
crap 12
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