Completed
Push — master ( 4af1ba...6f7ebd )
by Nate
52s
created

Instance   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 158
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 158
ccs 0
cts 84
cp 0
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A describe() 0 13 1
A describeRelay() 0 17 2
A limitsRelay() 0 17 2
A limits() 0 13 1
A resourcesRelay() 0 17 2
A resources() 0 13 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
        return static::describeRelay(
51
            $connection,
52
            $cache,
53
            $logger,
54
            $config
55
        )();
56
    }
57
58
    /**
59
     * @param ConnectionInterface $connection
60
     * @param CacheInterface $cache
61
     * @param LoggerInterface $logger
62
     * @param array $config
63
     * @return callable
64
     */
65
    public static function describeRelay(
66
        ConnectionInterface $connection,
67
        CacheInterface $cache,
68
        LoggerInterface $logger = null,
69
        array $config = []
70
    ): callable {
71
        /** @var RelayBuilderInterface $builder */
72
        $builder = new Describe(
73
            $connection,
74
            $connection,
75
            $cache,
76
            $logger ?: Salesforce::getLogger(),
77
            $config
78
        );
79
80
        return $builder->build();
81
    }
82
83
    /*******************************************
84
     * LIMITS
85
     *******************************************/
86
87
    /**
88
     * @param ConnectionInterface $connection
89
     * @param CacheInterface $cache
90
     * @param LoggerInterface|null $logger
91
     * @param array $config
92
     * @return callable
93
     */
94
    public static function limitsRelay(
95
        ConnectionInterface $connection,
96
        CacheInterface $cache,
97
        LoggerInterface $logger = null,
98
        array $config = []
99
    ): callable {
100
        /** @var RelayBuilderInterface $builder */
101
        $builder = new Limits(
102
            $connection,
103
            $connection,
104
            $cache,
105
            $logger ?: Salesforce::getLogger(),
106
            $config
107
        );
108
109
        return $builder->build();
110
    }
111
112
    /**
113
     * @param ConnectionInterface $connection
114
     * @param CacheInterface $cache
115
     * @param LoggerInterface|null $logger
116
     * @param array $config
117
     * @return ResponseInterface
118
     */
119
    public static function limits(
120
        ConnectionInterface $connection,
121
        CacheInterface $cache,
122
        LoggerInterface $logger = null,
123
        array $config = []
124
    ): ResponseInterface {
125
        return static::limitsRelay(
126
            $connection,
127
            $cache,
128
            $logger,
129
            $config
130
        )();
131
    }
132
133
    /*******************************************
134
     * RESOURCES
135
     *******************************************/
136
137
    /**
138
     * @param ConnectionInterface $connection
139
     * @param CacheInterface $cache
140
     * @param LoggerInterface|null $logger
141
     * @param array $config
142
     * @return callable
143
     */
144
    public static function resourcesRelay(
145
        ConnectionInterface $connection,
146
        CacheInterface $cache,
147
        LoggerInterface $logger = null,
148
        array $config = []
149
    ): callable {
150
        /** @var RelayBuilderInterface $builder */
151
        $builder = new Resources(
152
            $connection,
153
            $connection,
154
            $cache,
155
            $logger ?: Salesforce::getLogger(),
156
            $config
157
        );
158
159
        return $builder->build();
160
    }
161
162
    /**
163
     * @param ConnectionInterface $connection
164
     * @param CacheInterface $cache
165
     * @param LoggerInterface|null $logger
166
     * @param array $config
167
     * @return ResponseInterface
168
     */
169
    public static function resources(
170
        ConnectionInterface $connection,
171
        CacheInterface $cache,
172
        LoggerInterface $logger = null,
173
        array $config = []
174
    ): ResponseInterface {
175
        return static::resourcesRelay(
176
            $connection,
177
            $cache,
178
            $logger,
179
            $config
180
        )();
181
    }
182
}
183