summaryrefslogtreecommitdiff
path: root/Postman/Postman-Mail/mailgun/vendor/php-http/client-common/src/Plugin/HistoryPlugin.php
diff options
context:
space:
mode:
Diffstat (limited to 'Postman/Postman-Mail/mailgun/vendor/php-http/client-common/src/Plugin/HistoryPlugin.php')
-rw-r--r--Postman/Postman-Mail/mailgun/vendor/php-http/client-common/src/Plugin/HistoryPlugin.php49
1 files changed, 49 insertions, 0 deletions
diff --git a/Postman/Postman-Mail/mailgun/vendor/php-http/client-common/src/Plugin/HistoryPlugin.php b/Postman/Postman-Mail/mailgun/vendor/php-http/client-common/src/Plugin/HistoryPlugin.php
new file mode 100644
index 0000000..5abddbd
--- /dev/null
+++ b/Postman/Postman-Mail/mailgun/vendor/php-http/client-common/src/Plugin/HistoryPlugin.php
@@ -0,0 +1,49 @@
+<?php
+
+namespace Http\Client\Common\Plugin;
+
+use Http\Client\Common\Plugin;
+use Http\Client\Exception;
+use Psr\Http\Message\RequestInterface;
+use Psr\Http\Message\ResponseInterface;
+
+/**
+ * Record HTTP calls.
+ *
+ * @author Joel Wurtz <joel.wurtz@gmail.com>
+ */
+final class HistoryPlugin implements Plugin
+{
+ /**
+ * Journal use to store request / responses / exception.
+ *
+ * @var Journal
+ */
+ private $journal;
+
+ /**
+ * @param Journal $journal
+ */
+ public function __construct(Journal $journal)
+ {
+ $this->journal = $journal;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function handleRequest(RequestInterface $request, callable $next, callable $first)
+ {
+ $journal = $this->journal;
+
+ return $next($request)->then(function (ResponseInterface $response) use ($request, $journal) {
+ $journal->addSuccess($request, $response);
+
+ return $response;
+ }, function (Exception $exception) use ($request, $journal) {
+ $journal->addFailure($request, $exception);
+
+ throw $exception;
+ });
+ }
+}