PluginProbe
DecaLog / 4.4.0
DecaLog v4.4.0
3.0.2 3.1.0 3.10.0 3.2.0 3.3.0 3.4.0 3.4.1 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.6.3 3.7.0 3.7.1 3.8.0 3.9.0 3.9.1 4.0.0 4.1.0 4.2.0 4.3.0 4.3.1 4.4.0 4.5.0 All 75 releases
decalog / includes / libraries / http / client-common / BatchClient.php

BatchClient.php in DecaLog 4.4.0, at includes/libraries/http/client-common/BatchClient.php

43 lines 1.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace Http\Client\Common;
6
7 use Http\Client\Common\Exception\BatchException;
8 use Psr\Http\Client\ClientExceptionInterface;
9 use Psr\Http\Client\ClientInterface;
10
11 final class BatchClient implements BatchClientInterface
12 {
13 /**
14 * @var ClientInterface
15 */
16 private $client;
17
18 public function __construct(ClientInterface $client)
19 {
20 $this->client = $client;
21 }
22
23 public function sendRequests(array $requests): BatchResult
24 {
25 $batchResult = new BatchResult();
26
27 foreach ($requests as $request) {
28 try {
29 $response = $this->client->sendRequest($request);
30 $batchResult = $batchResult->addResponse($request, $response);
31 } catch (ClientExceptionInterface $e) {
32 $batchResult = $batchResult->addException($request, $e);
33 }
34 }
35
36 if ($batchResult->hasExceptions()) {
37 throw new BatchException($batchResult);
38 }
39
40 return $batchResult;
41 }
42 }
43