Jyxo\Webdav\Client::sendAllRequests PHP Method

sendAllRequests() protected method

Sends requests to all servers.
protected sendAllRequests ( array $requests ) : array
$requests array Request list
return array
    protected function sendAllRequests(array $requests) : array
    {
        try {
            $responses = [];
            $client = $this->createClient();
            if ($this->parallelSending) {
                // Send parallel requests
                // Create promises
                $promises = [];
                foreach ($requests as $server => $request) {
                    $promises[$server] = $client->sendAsync($request, $this->requestOptions);
                }
                // Wait on all of the requests to complete
                $responses = [];
                foreach ($promises as $server => $promise) {
                    $responses[$server] = $promise->wait();
                }
                // Log
                if (null !== $this->logger) {
                    foreach ($responses as $server => $response) {
                        $this->logger->log(sprintf("%s %d %s", $requests[$server]->getMethod(), $response->getStatusCode(), $requests[$server]->getUri()));
                    }
                }
            } else {
                // Send by separate requests
                foreach ($requests as $server => $request) {
                    $response = $client->send($request, $this->requestOptions);
                    $responses[$server] = $response;
                    // Log
                    if (null !== $this->logger) {
                        $this->logger->log(sprintf("%s %d %s", $request->getMethod(), $response->getStatusCode(), $request->getUri()));
                    }
                }
            }
            return $responses;
        } catch (\GuzzleHttp\Exception\GuzzleException $e) {
            throw new Exception($e->getMessage(), 0, $e);
        }
    }