Completed
Push — develop ( 4af1ba...d3b286 )
by Nate
05:42 queued 11s
created

Instance   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 164
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 9
lcom 0
cbo 5
dl 0
loc 164
ccs 0
cts 90
cp 0
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A describe() 0 14 1
A describeRelay() 0 18 2
A limitsRelay() 0 18 2
A limits() 0 14 1
A resourcesRelay() 0 18 2
A resources() 0 14 1
1
<?php
2
3
/**
4
 * @copyright  Copyright (c) Flipbox Digital Limited
5
 * @license    https://github.com/flipbox/salesforce/blob/master/LICENSE.md
6
 * @link       https://github.com/flipbox/salesforce
7
 */
8
9
namespace Flipbox\Salesforce\Resources;
10
11
use Flipbox\Relay\Builder\RelayBuilderInterface;
12
use Flipbox\Relay\Salesforce\Builder\Resources\Describe;
13
use Flipbox\Relay\Salesforce\Builder\Resources\Limits;
14
use Flipbox\Relay\Salesforce\Builder\Resources\Resources;
15
use Flipbox\Salesforce\Connections\ConnectionInterface;
16
use Flipbox\Salesforce\Salesforce;
17
use Psr\Http\Message\ResponseInterface;
18
use Psr\Log\LoggerInterface;
19
use Psr\SimpleCache\CacheInterface;
20
21
/**
22
 * @author Flipbox Factory <[email protected]>
23
 * @since 3.0.0
24
 */
25
class Instance
26
{
27
28
    /**
29
     * The resource name
30
     */
31
    const SALESFORCE_RESOURCE = 'instance';
32
33
    /*******************************************
34
     * DESCRIBE
35
     *******************************************/
36
37
    /**
38
     * @param ConnectionInterface $connection
39
     * @param CacheInterface $cache
40
     * @param LoggerInterface $logger
41
     * @param array $config
42
     * @return ResponseInterface
43
     */
44
    public static function describe(
45
        ConnectionInterface $connection,
46
        CacheInterface $cache,
47
        LoggerInterface $logger = null,
48
        array $config = []
49
    ): ResponseInterface
50
    {
51
        return static::describeRelay(
52
            $connection,
53
            $cache,
54
            $logger,
55
            $config
56
        )();
57
    }
58
59
    /**
60
     * @param ConnectionInterface $connection
61
     * @param CacheInterface $cache
62
     * @param LoggerInterface $logger
63
     * @param array $config
64
     * @return callable
65
     */
66
    public static function describeRelay(
67
        ConnectionInterface $connection,
68
        CacheInterface $cache,
69
        LoggerInterface $logger = null,
70
        array $config = []
71
    ): callable
72
    {
73
        /** @var RelayBuilderInterface $builder */
74
        $builder = new Describe(
75
            $connection,
76
            $connection,
77
            $cache,
78
            $logger ?: Salesforce::getLogger(),
79
            $config
80
        );
81
82
        return $builder->build();
83
    }
84
85
    /*******************************************
86
     * LIMITS
87
     *******************************************/
88
89
    /**
90
     * @param ConnectionInterface $connection
91
     * @param CacheInterface $cache
92
     * @param LoggerInterface|null $logger
93
     * @param array $config
94
     * @return callable
95
     */
96
    public static function limitsRelay(
97
        ConnectionInterface $connection,
98
        CacheInterface $cache,
99
        LoggerInterface $logger = null,
100
        array $config = []
101
    ): callable
102
    {
103
        /** @var RelayBuilderInterface $builder */
104
        $builder = new Limits(
105
            $connection,
106
            $connection,
107
            $cache,
108
            $logger ?: Salesforce::getLogger(),
109
            $config
110
        );
111
112
        return $builder->build();
113
    }
114
115
    /**
116
     * @param ConnectionInterface $connection
117
     * @param CacheInterface $cache
118
     * @param LoggerInterface|null $logger
119
     * @param array $config
120
     * @return ResponseInterface
121
     */
122
    public static function limits(
123
        ConnectionInterface $connection,
124
        CacheInterface $cache,
125
        LoggerInterface $logger = null,
126
        array $config = []
127
    ): ResponseInterface
128
    {
129
        return static::limitsRelay(
130
            $connection,
131
            $cache,
132
            $logger,
133
            $config
134
        )();
135
    }
136
137
    /*******************************************
138
     * RESOURCES
139
     *******************************************/
140
141
    /**
142
     * @param ConnectionInterface $connection
143
     * @param CacheInterface $cache
144
     * @param LoggerInterface|null $logger
145
     * @param array $config
146
     * @return callable
147
     */
148
    public static function resourcesRelay(
149
        ConnectionInterface $connection,
150
        CacheInterface $cache,
151
        LoggerInterface $logger = null,
152
        array $config = []
153
    ): callable
154
    {
155
        /** @var RelayBuilderInterface $builder */
156
        $builder = new Resources(
157
            $connection,
158
            $connection,
159
            $cache,
160
            $logger ?: Salesforce::getLogger(),
161
            $config
162
        );
163
164
        return $builder->build();
165
    }
166
167
    /**
168
     * @param ConnectionInterface $connection
169
     * @param CacheInterface $cache
170
     * @param LoggerInterface|null $logger
171
     * @param array $config
172
     * @return ResponseInterface
173
     */
174
    public static function resources(
175
        ConnectionInterface $connection,
176
        CacheInterface $cache,
177
        LoggerInterface $logger = null,
178
        array $config = []
179
    ): ResponseInterface
180
    {
181
        return static::resourcesRelay(
182
            $connection,
183
            $cache,
184
            $logger,
185
            $config
186
        )();
187
    }
188
}
189