Instance::describeRelay()   A
last analyzed

Complexity

Conditions 4
Paths 2

Size

Total Lines 18

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

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