1
- <?php namespace Sipwise \Api ;
1
+ <?php
2
+
3
+ namespace Sipwise \Api ;
2
4
3
- use Sipwise \Client ;
4
- use Sipwise \HttpClient \Message \QueryStringBuilder ;
5
- use Sipwise \HttpClient \Message \ResponseMediator ;
6
5
use Http \Discovery \StreamFactoryDiscovery ;
7
6
use Http \Message \StreamFactory ;
8
7
use Psr \Http \Message \ResponseInterface ;
9
8
use Psr \Http \Message \StreamInterface ;
9
+ use Sipwise \Client ;
10
+ use Sipwise \HttpClient \Message \QueryStringBuilder ;
11
+ use Sipwise \HttpClient \Message \ResponseMediator ;
10
12
use Symfony \Component \OptionsResolver \OptionsResolver ;
11
13
12
14
/**
13
- * Abstract class for Api classes
15
+ * Abstract class for Api classes.
14
16
*
15
17
* @author Joseph Bielawski <stloyd@gmail.com>
16
18
* @author Matt Humphrey <matt@m4tt.co>
20
22
abstract class AbstractApi implements ApiInterface
21
23
{
22
24
/**
23
- * The client
25
+ * The client.
24
26
*
25
27
* @var Client
26
28
*/
@@ -32,7 +34,7 @@ abstract class AbstractApi implements ApiInterface
32
34
private $ streamFactory ;
33
35
34
36
/**
35
- * @param Client $client
37
+ * @param Client $client
36
38
* @param StreamFactory|null $streamFactory
37
39
*/
38
40
public function __construct (Client $ client , StreamFactory $ streamFactory = null )
@@ -54,36 +56,39 @@ public function configure()
54
56
* Performs a GET query and returns the response as a PSR-7 response object.
55
57
*
56
58
* @param string $path
57
- * @param array $parameters
58
- * @param array $requestHeaders
59
+ * @param array $parameters
60
+ * @param array $requestHeaders
61
+ *
59
62
* @return ResponseInterface
60
63
*/
61
- protected function getAsResponse ($ path , array $ parameters = array () , $ requestHeaders = array () )
64
+ protected function getAsResponse ($ path , array $ parameters = [] , $ requestHeaders = [] )
62
65
{
63
66
$ preparedPath = $ this ->preparePath ($ path , $ parameters );
64
-
67
+
65
68
return $ this ->client ->getHttpClient ()->get ($ preparedPath , $ requestHeaders );
66
69
}
67
70
68
71
/**
69
72
* @param string $path
70
- * @param array $parameters
71
- * @param array $requestHeaders
73
+ * @param array $parameters
74
+ * @param array $requestHeaders
75
+ *
72
76
* @return mixed
73
77
*/
74
- protected function get ($ path , array $ parameters = array () , $ requestHeaders = array () )
78
+ protected function get ($ path , array $ parameters = [] , $ requestHeaders = [] )
75
79
{
76
80
return ResponseMediator::getContent ($ this ->getAsResponse ($ path , $ parameters , $ requestHeaders ));
77
81
}
78
82
79
83
/**
80
84
* @param string $path
81
- * @param array $parameters
82
- * @param array $requestHeaders
83
- * @param array $files
85
+ * @param array $parameters
86
+ * @param array $requestHeaders
87
+ * @param array $files
88
+ *
84
89
* @return mixed
85
90
*/
86
- protected function post ($ path , array $ parameters = array () , $ requestHeaders = array () )
91
+ protected function post ($ path , array $ parameters = [] , $ requestHeaders = [] )
87
92
{
88
93
$ preparedPath = $ this ->preparePath ($ path );
89
94
@@ -95,20 +100,22 @@ protected function post($path, array $parameters = array(), $requestHeaders = ar
95
100
}
96
101
97
102
$ response = $ this ->client ->getHttpClient ()->post ($ preparedPath , $ requestHeaders , $ body );
98
-
99
- if (empty (ResponseMediator::getContent ($ response ))){
103
+
104
+ if (empty (ResponseMediator::getContent ($ response ))) {
100
105
return ResponseMediator::getHeaders ($ response );
101
106
}
107
+
102
108
return ResponseMediator::getContent ($ response );
103
109
}
104
110
105
111
/**
106
112
* @param string $path
107
- * @param array $parameters
108
- * @param array $requestHeaders
113
+ * @param array $parameters
114
+ * @param array $requestHeaders
115
+ *
109
116
* @return mixed
110
117
*/
111
- protected function put ($ path , array $ parameters = array () , $ requestHeaders = array () )
118
+ protected function put ($ path , array $ parameters = [] , $ requestHeaders = [] )
112
119
{
113
120
$ preparedPath = $ this ->preparePath ($ path );
114
121
@@ -123,14 +130,15 @@ protected function put($path, array $parameters = array(), $requestHeaders = arr
123
130
124
131
return ResponseMediator::getContent ($ response );
125
132
}
126
-
133
+
127
134
/**
128
135
* @param string $path
129
- * @param array $parameters
130
- * @param array $requestHeaders
136
+ * @param array $parameters
137
+ * @param array $requestHeaders
138
+ *
131
139
* @return mixed
132
140
*/
133
- protected function patch ($ path , array $ parameters = array () , $ requestHeaders = array () )
141
+ protected function patch ($ path , array $ parameters = [] , $ requestHeaders = [] )
134
142
{
135
143
$ preparedPath = $ this ->preparePath ($ path );
136
144
@@ -148,11 +156,12 @@ protected function patch($path, array $parameters = array(), $requestHeaders = a
148
156
149
157
/**
150
158
* @param string $path
151
- * @param array $parameters
152
- * @param array $requestHeaders
159
+ * @param array $parameters
160
+ * @param array $requestHeaders
161
+ *
153
162
* @return mixed
154
163
*/
155
- protected function delete ($ path , array $ parameters = array () , $ requestHeaders = array () )
164
+ protected function delete ($ path , array $ parameters = [] , $ requestHeaders = [] )
156
165
{
157
166
$ preparedPath = $ this ->preparePath ($ path , $ parameters );
158
167
@@ -163,6 +172,7 @@ protected function delete($path, array $parameters = array(), $requestHeaders =
163
172
164
173
/**
165
174
* @param string $path
175
+ *
166
176
* @return string
167
177
*/
168
178
protected function encodePath ($ path )
@@ -180,9 +190,9 @@ protected function encodePath($path)
180
190
protected function createOptionsResolver (array $ parameters = [])
181
191
{
182
192
$ resolver = new OptionsResolver ();
183
-
193
+
184
194
$ resolver ->setDefined (array_keys ($ parameters ));
185
-
195
+
186
196
$ resolver ->setDefined ('page ' )
187
197
->setAllowedTypes ('page ' , 'int ' )
188
198
->setAllowedValues ('page ' , function ($ value ) {
@@ -193,30 +203,30 @@ protected function createOptionsResolver(array $parameters = [])
193
203
->setAllowedValues ('rows ' , function ($ value ) {
194
204
return $ value > 0 && $ value <= 100 ;
195
205
});
196
-
206
+
197
207
$ resolver ->setDefined ('order_by ' )
198
208
->setAllowedTypes ('order_by ' , 'string ' );
199
-
209
+
200
210
$ resolver ->setDefined ('order_by_direction ' )
201
211
->setAllowedTypes ('order_by_direction ' , 'string ' );
202
212
203
213
return $ resolver ;
204
214
}
205
-
215
+
206
216
protected function createEditOptionsResolver (array $ parameters = [])
207
217
{
208
218
$ resolver = new OptionsResolver ();
209
219
210
220
$ resolver ->setDefined ('op ' )
211
- ->setAllowedTypes ('op ' , 'string ' )->setAllowedValues ('op ' ,['remove ' , 'add ' , 'replace ' , 'move ' , 'copy ' ]);
212
-
221
+ ->setAllowedTypes ('op ' , 'string ' )->setAllowedValues ('op ' , ['remove ' , 'add ' , 'replace ' , 'move ' , 'copy ' ]);
222
+
213
223
$ resolver ->setDefined ('path ' )
214
224
->setAllowedTypes ('path ' , 'string ' );
215
-
225
+
216
226
$ resolver ->setDefined ('value ' )
217
- ->setAllowedTypes ('value ' , ['integer ' ,'string ' , 'bool ' ]);
218
-
219
- foreach ($ parameters as $ parameter ){
227
+ ->setAllowedTypes ('value ' , ['integer ' , 'string ' , 'bool ' ]);
228
+
229
+ foreach ($ parameters as $ parameter ) {
220
230
$ resolver ->resolve ($ parameter );
221
231
}
222
232
@@ -225,12 +235,14 @@ protected function createEditOptionsResolver(array $parameters = [])
225
235
226
236
/**
227
237
* @param array $parameters
238
+ *
228
239
* @return StreamInterface
229
240
*/
230
241
private function prepareBody (array $ parameters = [])
231
242
{
232
243
$ raw = json_encode ($ parameters );
233
244
$ stream = $ this ->streamFactory ->createStream ($ raw );
245
+
234
246
return $ stream ;
235
247
}
236
248
0 commit comments