|
27 | 27 | namespace Firstred\PostNL\HttpClient; |
28 | 28 |
|
29 | 29 | use Composer\CaBundle\CaBundle; |
| 30 | +use Exception; |
30 | 31 | use Firstred\PostNL\Exception\ApiConnectionException; |
31 | 32 | use Firstred\PostNL\Exception\ApiException; |
32 | 33 | use Firstred\PostNL\Exception\HttpClientException; |
| 34 | +use Firstred\PostNL\Exception\InvalidArgumentException; |
33 | 35 | use GuzzleHttp\Psr7\Message as PsrMessage; |
34 | 36 | use Psr\Http\Message\RequestInterface; |
35 | 37 | use Psr\Http\Message\ResponseInterface; |
36 | 38 | use Psr\Log\LoggerAwareInterface; |
37 | 39 | use Psr\Log\LogLevel; |
38 | 40 | use function define; |
39 | 41 | use function defined; |
| 42 | +use function is_array; |
| 43 | +use function user_error; |
40 | 44 | use const CURLOPT_FOLLOWLOCATION; |
41 | 45 | use const CURLOPT_HTTPHEADER; |
42 | 46 | use const CURLOPT_PROTOCOLS; |
43 | 47 | use const CURLOPT_REDIR_PROTOCOLS; |
44 | 48 | use const CURLOPT_SSL_VERIFYPEER; |
| 49 | +use const E_USER_DEPRECATED; |
45 | 50 |
|
46 | 51 | if (!defined('CURL_SSLVERSION_TLSv1')) { |
47 | 52 | define('CURL_SSLVERSION_TLSv1', 1); |
@@ -136,12 +141,30 @@ public function doRequest(RequestInterface $request) |
136 | 141 | * @param RequestInterface[] $requests |
137 | 142 | * |
138 | 143 | * @return ResponseInterface[]|HttpClientException[] |
| 144 | + * |
| 145 | + * @throws InvalidArgumentException |
139 | 146 | */ |
140 | 147 | public function doRequests($requests = []) |
141 | 148 | { |
| 149 | + if ($requests instanceof RequestInterface) { |
| 150 | + user_error( |
| 151 | + 'Passing a single request to HttpClientInterface::doRequests is deprecated', |
| 152 | + E_USER_DEPRECATED |
| 153 | + ); |
| 154 | + $requests = [$requests]; |
| 155 | + } |
| 156 | + if (!is_array($requests)) { |
| 157 | + throw new InvalidArgumentException('Invalid requests array passed'); |
| 158 | + } |
| 159 | + if (!is_array($this->pendingRequests)) { |
| 160 | + $this->pendingRequests = []; |
| 161 | + } |
| 162 | + |
142 | 163 | // Reset request headers array |
143 | 164 | $curlHandles = []; |
144 | 165 | $mh = curl_multi_init(); |
| 166 | + |
| 167 | + // Handle pending requests as well |
145 | 168 | $requests = $this->pendingRequests + $requests; |
146 | 169 | foreach ($requests as $uuid => $request) { |
147 | 170 | $curl = curl_init(); |
|
0 commit comments