X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fdevel%2Fwebprofiler%2Fsrc%2FHttp%2FHttpClientMiddleware.php;fp=web%2Fmodules%2Fcontrib%2Fdevel%2Fwebprofiler%2Fsrc%2FHttp%2FHttpClientMiddleware.php;h=b64a2a6cc5cf79f118aaea6df554355f0edfc320;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hp=0000000000000000000000000000000000000000;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad;p=yaffs-website diff --git a/web/modules/contrib/devel/webprofiler/src/Http/HttpClientMiddleware.php b/web/modules/contrib/devel/webprofiler/src/Http/HttpClientMiddleware.php new file mode 100644 index 000000000..b64a2a6cc --- /dev/null +++ b/web/modules/contrib/devel/webprofiler/src/Http/HttpClientMiddleware.php @@ -0,0 +1,84 @@ +completedRequests = []; + $this->failedRequests = []; + } + + /** + * {@inheritdoc} + */ + public function __invoke() { + return function ($handler) { + return function (RequestInterface $request, array $options) use ($handler) { + + $options['on_stats'] = function (TransferStats $stats) use ($request) { + $request->stats = $stats; + }; + + return $handler($request, $options)->then( + function ($response) use ($request) { + + $this->completedRequests[] = [ + 'request' => $request, + 'response' => $response, + ]; + + return $response; + }, + function ($reason) use ($request) { + $response = $reason instanceof RequestException + ? $reason->getResponse() + : null; + + $this->failedRequests[] = [ + 'request' => $request, + 'response' => $response, + 'message' => $reason->getMessage(), + ]; + + return \GuzzleHttp\Promise\rejection_for($reason); + } + ); + }; + }; + } + + /** + * @return array + */ + public function getCompletedRequests() { + return $this->completedRequests; + } + + /** + * @return array + */ + public function getFailedRequests() { + return $this->failedRequests; + } +}