summaryrefslogtreecommitdiff
path: root/inc/mailgun/php-http/promise
diff options
context:
space:
mode:
authorCarson Fleming <cflems@cflems.net>2017-03-02 22:49:24 -0500
committerCarson Fleming <cflems@cflems.net>2017-03-02 22:49:24 -0500
commitb76e2ff898b23745d4c9aaee49eeb7d88f2896ab (patch)
tree9b794be8db310a575d70165d9ebde0a183b61b01 /inc/mailgun/php-http/promise
parentbfcc9f7a7656a2db0c905b3c13114664f00f6c37 (diff)
downloadbulletin-b76e2ff898b23745d4c9aaee49eeb7d88f2896ab.tar.gz
Updated mailgun plugin
Diffstat (limited to 'inc/mailgun/php-http/promise')
-rw-r--r--inc/mailgun/php-http/promise/CHANGELOG.md35
-rw-r--r--inc/mailgun/php-http/promise/LICENSE19
-rw-r--r--inc/mailgun/php-http/promise/README.md49
-rw-r--r--inc/mailgun/php-http/promise/composer.json35
-rw-r--r--inc/mailgun/php-http/promise/src/FulfilledPromise.php58
-rw-r--r--inc/mailgun/php-http/promise/src/Promise.php69
-rw-r--r--inc/mailgun/php-http/promise/src/RejectedPromise.php58
7 files changed, 323 insertions, 0 deletions
diff --git a/inc/mailgun/php-http/promise/CHANGELOG.md b/inc/mailgun/php-http/promise/CHANGELOG.md
new file mode 100644
index 0000000..336e140
--- /dev/null
+++ b/inc/mailgun/php-http/promise/CHANGELOG.md
@@ -0,0 +1,35 @@
+# Change Log
+
+
+## 1.0.0 - 2016-01-26
+
+### Removed
+
+- PSR-7 dependency
+
+
+## 1.0.0-RC1 - 2016-01-12
+
+### Added
+
+- Tests for full coverage
+
+## Changed
+
+- Updated package files
+- Clarified wait method behavior
+- Contributing guide moved to the documentation
+
+
+## 0.1.1 - 2015-12-24
+
+## Added
+
+- Fulfilled and Rejected promise implementations
+
+
+## 0.1.0 - 2015-12-13
+
+## Added
+
+- Promise interface
diff --git a/inc/mailgun/php-http/promise/LICENSE b/inc/mailgun/php-http/promise/LICENSE
new file mode 100644
index 0000000..4558d6f
--- /dev/null
+++ b/inc/mailgun/php-http/promise/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2015-2016 PHP HTTP Team <team@php-http.org>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/inc/mailgun/php-http/promise/README.md b/inc/mailgun/php-http/promise/README.md
new file mode 100644
index 0000000..adda2ae
--- /dev/null
+++ b/inc/mailgun/php-http/promise/README.md
@@ -0,0 +1,49 @@
+# Promise
+
+[![Latest Version](https://img.shields.io/github/release/php-http/promise.svg?style=flat-square)](https://github.com/php-http/promise/releases)
+[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE)
+[![Build Status](https://img.shields.io/travis/php-http/promise.svg?style=flat-square)](https://travis-ci.org/php-http/promise)
+[![Code Coverage](https://img.shields.io/scrutinizer/coverage/g/php-http/promise.svg?style=flat-square)](https://scrutinizer-ci.com/g/php-http/promise)
+[![Quality Score](https://img.shields.io/scrutinizer/g/php-http/promise.svg?style=flat-square)](https://scrutinizer-ci.com/g/php-http/promise)
+[![Total Downloads](https://img.shields.io/packagist/dt/php-http/promise.svg?style=flat-square)](https://packagist.org/packages/php-http/promise)
+
+**Promise used for asynchronous HTTP requests.**
+
+**Note:** This will eventually be removed/deprecated and replaced with the upcoming Promise PSR.
+
+
+## Install
+
+Via Composer
+
+``` bash
+$ composer require php-http/promise
+```
+
+
+## Documentation
+
+Please see the [official documentation](http://docs.php-http.org).
+
+
+## Testing
+
+``` bash
+$ composer test
+```
+
+
+## Contributing
+
+Please see our [contributing guide](http://docs.php-http.org/en/latest/development/contributing.html).
+
+
+## Security
+
+If you discover any security related issues, please contact us at [security@httplug.io](mailto:security@httplug.io)
+or [security@php-http.org](mailto:security@php-http.org).
+
+
+## License
+
+The MIT License (MIT). Please see [License File](LICENSE) for more information.
diff --git a/inc/mailgun/php-http/promise/composer.json b/inc/mailgun/php-http/promise/composer.json
new file mode 100644
index 0000000..ff1d2ce
--- /dev/null
+++ b/inc/mailgun/php-http/promise/composer.json
@@ -0,0 +1,35 @@
+{
+ "name": "php-http/promise",
+ "description": "Promise used for asynchronous HTTP requests",
+ "license": "MIT",
+ "keywords": ["promise"],
+ "homepage": "http://httplug.io",
+ "authors": [
+ {
+ "name": "Joel Wurtz",
+ "email": "joel.wurtz@gmail.com"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
+ }
+ ],
+ "require-dev": {
+ "phpspec/phpspec": "^2.4",
+ "henrikbjorn/phpspec-code-coverage" : "^1.0"
+ },
+ "autoload": {
+ "psr-4": {
+ "Http\\Promise\\": "src/"
+ }
+ },
+ "scripts": {
+ "test": "vendor/bin/phpspec run",
+ "test-ci": "vendor/bin/phpspec run -c phpspec.yml.ci"
+ },
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1-dev"
+ }
+ }
+}
diff --git a/inc/mailgun/php-http/promise/src/FulfilledPromise.php b/inc/mailgun/php-http/promise/src/FulfilledPromise.php
new file mode 100644
index 0000000..f60f686
--- /dev/null
+++ b/inc/mailgun/php-http/promise/src/FulfilledPromise.php
@@ -0,0 +1,58 @@
+<?php
+
+namespace Http\Promise;
+
+/**
+ * A promise already fulfilled.
+ *
+ * @author Joel Wurtz <joel.wurtz@gmail.com>
+ */
+final class FulfilledPromise implements Promise
+{
+ /**
+ * @var mixed
+ */
+ private $result;
+
+ /**
+ * @param $result
+ */
+ public function __construct($result)
+ {
+ $this->result = $result;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function then(callable $onFulfilled = null, callable $onRejected = null)
+ {
+ if (null === $onFulfilled) {
+ return $this;
+ }
+
+ try {
+ return new self($onFulfilled($this->result));
+ } catch (\Exception $e) {
+ return new RejectedPromise($e);
+ }
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getState()
+ {
+ return Promise::FULFILLED;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function wait($unwrap = true)
+ {
+ if ($unwrap) {
+ return $this->result;
+ }
+ }
+}
diff --git a/inc/mailgun/php-http/promise/src/Promise.php b/inc/mailgun/php-http/promise/src/Promise.php
new file mode 100644
index 0000000..e2cf5f8
--- /dev/null
+++ b/inc/mailgun/php-http/promise/src/Promise.php
@@ -0,0 +1,69 @@
+<?php
+
+namespace Http\Promise;
+
+/**
+ * Promise represents a value that may not be available yet, but will be resolved at some point in future.
+ * It acts like a proxy to the actual value.
+ *
+ * This interface is an extension of the promises/a+ specification.
+ *
+ * @see https://promisesaplus.com/
+ *
+ * @author Joel Wurtz <joel.wurtz@gmail.com>
+ * @author Márk Sági-Kazár <mark.sagikazar@gmail.com>
+ */
+interface Promise
+{
+ /**
+ * Promise has not been fulfilled or rejected.
+ */
+ const PENDING = 'pending';
+
+ /**
+ * Promise has been fulfilled.
+ */
+ const FULFILLED = 'fulfilled';
+
+ /**
+ * Promise has been rejected.
+ */
+ const REJECTED = 'rejected';
+
+ /**
+ * Adds behavior for when the promise is resolved or rejected (response will be available, or error happens).
+ *
+ * If you do not care about one of the cases, you can set the corresponding callable to null
+ * The callback will be called when the value arrived and never more than once.
+ *
+ * @param callable $onFulfilled Called when a response will be available.
+ * @param callable $onRejected Called when an exception occurs.
+ *
+ * @return Promise A new resolved promise with value of the executed callback (onFulfilled / onRejected).
+ */
+ public function then(callable $onFulfilled = null, callable $onRejected = null);
+
+ /**
+ * Returns the state of the promise, one of PENDING, FULFILLED or REJECTED.
+ *
+ * @return string
+ */
+ public function getState();
+
+ /**
+ * Wait for the promise to be fulfilled or rejected.
+ *
+ * When this method returns, the request has been resolved and if callables have been
+ * specified, the appropriate one has terminated.
+ *
+ * When $unwrap is true (the default), the response is returned, or the exception thrown
+ * on failure. Otherwise, nothing is returned or thrown.
+ *
+ * @param bool $unwrap Whether to return resolved value / throw reason or not
+ *
+ * @return mixed Resolved value, null if $unwrap is set to false
+ *
+ * @throws \Exception The rejection reason if $unwrap is set to true and the request failed.
+ */
+ public function wait($unwrap = true);
+}
diff --git a/inc/mailgun/php-http/promise/src/RejectedPromise.php b/inc/mailgun/php-http/promise/src/RejectedPromise.php
new file mode 100644
index 0000000..e396a40
--- /dev/null
+++ b/inc/mailgun/php-http/promise/src/RejectedPromise.php
@@ -0,0 +1,58 @@
+<?php
+
+namespace Http\Promise;
+
+/**
+ * A rejected promise.
+ *
+ * @author Joel Wurtz <joel.wurtz@gmail.com>
+ */
+final class RejectedPromise implements Promise
+{
+ /**
+ * @var \Exception
+ */
+ private $exception;
+
+ /**
+ * @param \Exception $exception
+ */
+ public function __construct(\Exception $exception)
+ {
+ $this->exception = $exception;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function then(callable $onFulfilled = null, callable $onRejected = null)
+ {
+ if (null === $onRejected) {
+ return $this;
+ }
+
+ try {
+ return new FulfilledPromise($onRejected($this->exception));
+ } catch (\Exception $e) {
+ return new self($e);
+ }
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getState()
+ {
+ return Promise::REJECTED;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function wait($unwrap = true)
+ {
+ if ($unwrap) {
+ throw $this->exception;
+ }
+ }
+}