diff options
Diffstat (limited to 'inc/mailgun/php-http/httplug')
| -rw-r--r-- | inc/mailgun/php-http/httplug/CHANGELOG.md | 72 | ||||
| -rw-r--r-- | inc/mailgun/php-http/httplug/LICENSE | 20 | ||||
| -rw-r--r-- | inc/mailgun/php-http/httplug/README.md | 57 | ||||
| -rw-r--r-- | inc/mailgun/php-http/httplug/composer.json | 40 | ||||
| -rw-r--r-- | inc/mailgun/php-http/httplug/puli.json | 12 | ||||
| -rw-r--r-- | inc/mailgun/php-http/httplug/src/Exception.php | 12 | ||||
| -rw-r--r-- | inc/mailgun/php-http/httplug/src/Exception/HttpException.php | 74 | ||||
| -rw-r--r-- | inc/mailgun/php-http/httplug/src/Exception/NetworkException.php | 14 | ||||
| -rw-r--r-- | inc/mailgun/php-http/httplug/src/Exception/RequestException.php | 43 | ||||
| -rw-r--r-- | inc/mailgun/php-http/httplug/src/Exception/TransferException.php | 14 | ||||
| -rw-r--r-- | inc/mailgun/php-http/httplug/src/HttpAsyncClient.php | 27 | ||||
| -rw-r--r-- | inc/mailgun/php-http/httplug/src/HttpClient.php | 28 | ||||
| -rw-r--r-- | inc/mailgun/php-http/httplug/src/Promise/HttpFulfilledPromise.php | 57 | ||||
| -rw-r--r-- | inc/mailgun/php-http/httplug/src/Promise/HttpRejectedPromise.php | 56 |
14 files changed, 526 insertions, 0 deletions
diff --git a/inc/mailgun/php-http/httplug/CHANGELOG.md b/inc/mailgun/php-http/httplug/CHANGELOG.md new file mode 100644 index 0000000..8478966 --- /dev/null +++ b/inc/mailgun/php-http/httplug/CHANGELOG.md @@ -0,0 +1,72 @@ +# Change Log + +## 1.1.0 - 2016-08-31 + +- Added HttpFulfilledPromise and HttpRejectedPromise which respect the HttpAsyncClient interface + +## 1.0.0 - 2016-01-26 + +### Removed + +- Stability configuration from composer + + +## 1.0.0-RC1 - 2016-01-12 + +### Changed + +- Updated package files +- Updated promise dependency to RC1 + + +## 1.0.0-beta - 2015-12-17 + +### Added + +- Puli configuration and binding types + +### Changed + +- Exception concept + + +## 1.0.0-alpha3 - 2015-12-13 + +### Changed + +- Async client does not throw exceptions + +### Removed + +- Promise interface moved to its own repository: [php-http/promise](https://github.com/php-http/promise) + + +## 1.0.0-alpha2 - 2015-11-16 + +### Added + +- Async client and Promise interface + + +## 1.0.0-alpha - 2015-10-26 + +### Added + +- Better domain exceptions. + +### Changed + +- Purpose of the library: general HTTP CLient abstraction. + +### Removed + +- Request options: they should be configured at construction time. +- Multiple request sending: should be done asynchronously using Async Client. +- `getName` method + + +## 0.1.0 - 2015-06-03 + +### Added + +- Initial release diff --git a/inc/mailgun/php-http/httplug/LICENSE b/inc/mailgun/php-http/httplug/LICENSE new file mode 100644 index 0000000..48741e4 --- /dev/null +++ b/inc/mailgun/php-http/httplug/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2014-2015 Eric GELOEN <geloen.eric@gmail.com> +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/httplug/README.md b/inc/mailgun/php-http/httplug/README.md new file mode 100644 index 0000000..f46212b --- /dev/null +++ b/inc/mailgun/php-http/httplug/README.md @@ -0,0 +1,57 @@ +# HTTPlug + +[](https://github.com/php-http/httplug/releases) +[](LICENSE) +[](https://travis-ci.org/php-http/httplug) +[](https://scrutinizer-ci.com/g/php-http/httplug) +[](https://scrutinizer-ci.com/g/php-http/httplug) +[](https://packagist.org/packages/php-http/httplug) + +[](http://slack.httplug.io) +[](mailto:team@httplug.io) + +**HTTPlug, the HTTP client abstraction for PHP.** + + +## Install + +Via Composer + +``` bash +$ composer require php-http/httplug +``` + + +## Intro + +This is the contract package for HTTP Client. +Use it to create HTTP Clients which are interoperable and compatible with [PSR-7](http://www.php-fig.org/psr/psr-7/). + +This library is the official successor of the [ivory http adapter](https://github.com/egeloen/ivory-http-adapter). + + +## 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@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/httplug/composer.json b/inc/mailgun/php-http/httplug/composer.json new file mode 100644 index 0000000..f74c4d3 --- /dev/null +++ b/inc/mailgun/php-http/httplug/composer.json @@ -0,0 +1,40 @@ +{ + "name": "php-http/httplug", + "description": "HTTPlug, the HTTP client abstraction for PHP", + "license": "MIT", + "keywords": ["http", "client"], + "homepage": "http://httplug.io", + "authors": [ + { + "name": "Eric GELOEN", + "email": "geloen.eric@gmail.com" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "require": { + "php": ">=5.4", + "psr/http-message": "^1.0", + "php-http/promise": "^1.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.4", + "henrikbjorn/phpspec-code-coverage" : "^1.0" + }, + "autoload": { + "psr-4": { + "Http\\Client\\": "src/" + } + }, + "scripts": { + "test": "vendor/bin/phpspec run", + "test-ci": "vendor/bin/phpspec run -c phpspec.ci.yml" + }, + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + } +} diff --git a/inc/mailgun/php-http/httplug/puli.json b/inc/mailgun/php-http/httplug/puli.json new file mode 100644 index 0000000..4168331 --- /dev/null +++ b/inc/mailgun/php-http/httplug/puli.json @@ -0,0 +1,12 @@ +{ + "version": "1.0", + "name": "php-http/httplug", + "binding-types": { + "Http\\Client\\HttpAsyncClient": { + "description": "Async HTTP Client" + }, + "Http\\Client\\HttpClient": { + "description": "HTTP Client" + } + } +} diff --git a/inc/mailgun/php-http/httplug/src/Exception.php b/inc/mailgun/php-http/httplug/src/Exception.php new file mode 100644 index 0000000..e7382c3 --- /dev/null +++ b/inc/mailgun/php-http/httplug/src/Exception.php @@ -0,0 +1,12 @@ +<?php + +namespace Http\Client; + +/** + * Every HTTP Client related Exception must implement this interface. + * + * @author Márk Sági-Kazár <mark.sagikazar@gmail.com> + */ +interface Exception +{ +} diff --git a/inc/mailgun/php-http/httplug/src/Exception/HttpException.php b/inc/mailgun/php-http/httplug/src/Exception/HttpException.php new file mode 100644 index 0000000..f4f32a4 --- /dev/null +++ b/inc/mailgun/php-http/httplug/src/Exception/HttpException.php @@ -0,0 +1,74 @@ +<?php + +namespace Http\Client\Exception; + +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * Thrown when a response was received but the request itself failed. + * + * In addition to the request, this exception always provides access to the response object. + * + * @author Márk Sági-Kazár <mark.sagikazar@gmail.com> + */ +class HttpException extends RequestException +{ + /** + * @var ResponseInterface + */ + protected $response; + + /** + * @param string $message + * @param RequestInterface $request + * @param ResponseInterface $response + * @param \Exception|null $previous + */ + public function __construct( + $message, + RequestInterface $request, + ResponseInterface $response, + \Exception $previous = null + ) { + parent::__construct($message, $request, $previous); + + $this->response = $response; + $this->code = $response->getStatusCode(); + } + + /** + * Returns the response. + * + * @return ResponseInterface + */ + public function getResponse() + { + return $this->response; + } + + /** + * Factory method to create a new exception with a normalized error message. + * + * @param RequestInterface $request + * @param ResponseInterface $response + * @param \Exception|null $previous + * + * @return HttpException + */ + public static function create( + RequestInterface $request, + ResponseInterface $response, + \Exception $previous = null + ) { + $message = sprintf( + '[url] %s [http method] %s [status code] %s [reason phrase] %s', + $request->getRequestTarget(), + $request->getMethod(), + $response->getStatusCode(), + $response->getReasonPhrase() + ); + + return new self($message, $request, $response, $previous); + } +} diff --git a/inc/mailgun/php-http/httplug/src/Exception/NetworkException.php b/inc/mailgun/php-http/httplug/src/Exception/NetworkException.php new file mode 100644 index 0000000..f2198e5 --- /dev/null +++ b/inc/mailgun/php-http/httplug/src/Exception/NetworkException.php @@ -0,0 +1,14 @@ +<?php + +namespace Http\Client\Exception; + +/** + * Thrown when the request cannot be completed because of network issues. + * + * There is no response object as this exception is thrown when no response has been received. + * + * @author Márk Sági-Kazár <mark.sagikazar@gmail.com> + */ +class NetworkException extends RequestException +{ +} diff --git a/inc/mailgun/php-http/httplug/src/Exception/RequestException.php b/inc/mailgun/php-http/httplug/src/Exception/RequestException.php new file mode 100644 index 0000000..cdce14b --- /dev/null +++ b/inc/mailgun/php-http/httplug/src/Exception/RequestException.php @@ -0,0 +1,43 @@ +<?php + +namespace Http\Client\Exception; + +use Psr\Http\Message\RequestInterface; + +/** + * Exception for when a request failed, providing access to the failed request. + * + * This could be due to an invalid request, or one of the extending exceptions + * for network errors or HTTP error responses. + * + * @author Márk Sági-Kazár <mark.sagikazar@gmail.com> + */ +class RequestException extends TransferException +{ + /** + * @var RequestInterface + */ + private $request; + + /** + * @param string $message + * @param RequestInterface $request + * @param \Exception|null $previous + */ + public function __construct($message, RequestInterface $request, \Exception $previous = null) + { + $this->request = $request; + + parent::__construct($message, 0, $previous); + } + + /** + * Returns the request. + * + * @return RequestInterface + */ + public function getRequest() + { + return $this->request; + } +} diff --git a/inc/mailgun/php-http/httplug/src/Exception/TransferException.php b/inc/mailgun/php-http/httplug/src/Exception/TransferException.php new file mode 100644 index 0000000..a858cf5 --- /dev/null +++ b/inc/mailgun/php-http/httplug/src/Exception/TransferException.php @@ -0,0 +1,14 @@ +<?php + +namespace Http\Client\Exception; + +use Http\Client\Exception; + +/** + * Base exception for transfer related exceptions. + * + * @author Márk Sági-Kazár <mark.sagikazar@gmail.com> + */ +class TransferException extends \RuntimeException implements Exception +{ +} diff --git a/inc/mailgun/php-http/httplug/src/HttpAsyncClient.php b/inc/mailgun/php-http/httplug/src/HttpAsyncClient.php new file mode 100644 index 0000000..492e511 --- /dev/null +++ b/inc/mailgun/php-http/httplug/src/HttpAsyncClient.php @@ -0,0 +1,27 @@ +<?php + +namespace Http\Client; + +use Http\Promise\Promise; +use Psr\Http\Message\RequestInterface; + +/** + * Sends a PSR-7 Request in an asynchronous way by returning a Promise. + * + * @author Joel Wurtz <joel.wurtz@gmail.com> + */ +interface HttpAsyncClient +{ + /** + * Sends a PSR-7 request in an asynchronous way. + * + * Exceptions related to processing the request are available from the returned Promise. + * + * @param RequestInterface $request + * + * @return Promise Resolves a PSR-7 Response or fails with an Http\Client\Exception. + * + * @throws \Exception If processing the request is impossible (eg. bad configuration). + */ + public function sendAsyncRequest(RequestInterface $request); +} diff --git a/inc/mailgun/php-http/httplug/src/HttpClient.php b/inc/mailgun/php-http/httplug/src/HttpClient.php new file mode 100644 index 0000000..0e51749 --- /dev/null +++ b/inc/mailgun/php-http/httplug/src/HttpClient.php @@ -0,0 +1,28 @@ +<?php + +namespace Http\Client; + +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * Sends a PSR-7 Request and returns a PSR-7 response. + * + * @author GeLo <geloen.eric@gmail.com> + * @author Márk Sági-Kazár <mark.sagikazar@gmail.com> + * @author David Buchmann <mail@davidbu.ch> + */ +interface HttpClient +{ + /** + * Sends a PSR-7 request. + * + * @param RequestInterface $request + * + * @return ResponseInterface + * + * @throws \Http\Client\Exception If an error happens during processing the request. + * @throws \Exception If processing the request is impossible (eg. bad configuration). + */ + public function sendRequest(RequestInterface $request); +} diff --git a/inc/mailgun/php-http/httplug/src/Promise/HttpFulfilledPromise.php b/inc/mailgun/php-http/httplug/src/Promise/HttpFulfilledPromise.php new file mode 100644 index 0000000..6779e44 --- /dev/null +++ b/inc/mailgun/php-http/httplug/src/Promise/HttpFulfilledPromise.php @@ -0,0 +1,57 @@ +<?php + +namespace Http\Client\Promise; + +use Http\Client\Exception; +use Http\Promise\Promise; +use Psr\Http\Message\ResponseInterface; + +final class HttpFulfilledPromise implements Promise +{ + /** + * @var ResponseInterface + */ + private $response; + + /** + * @param ResponseInterface $response + */ + public function __construct(ResponseInterface $response) + { + $this->response = $response; + } + + /** + * {@inheritdoc} + */ + public function then(callable $onFulfilled = null, callable $onRejected = null) + { + if (null === $onFulfilled) { + return $this; + } + + try { + return new self($onFulfilled($this->response)); + } catch (Exception $e) { + return new HttpRejectedPromise($e); + } + } + + /** + * {@inheritdoc} + */ + public function getState() + { + return Promise::FULFILLED; + } + + /** + * {@inheritdoc} + */ + public function wait($unwrap = true) + { + if ($unwrap) { + return $this->response; + } + } +} diff --git a/inc/mailgun/php-http/httplug/src/Promise/HttpRejectedPromise.php b/inc/mailgun/php-http/httplug/src/Promise/HttpRejectedPromise.php new file mode 100644 index 0000000..bfb0738 --- /dev/null +++ b/inc/mailgun/php-http/httplug/src/Promise/HttpRejectedPromise.php @@ -0,0 +1,56 @@ +<?php + +namespace Http\Client\Promise; + +use Http\Client\Exception; +use Http\Promise\Promise; + +final class HttpRejectedPromise 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 HttpFulfilledPromise($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; + } + } +} |
