55use Http \Client \Common \Plugin ;
66use Http \Discovery \UriFactoryDiscovery ;
77use PrivatePackagist \ApiClient \HttpClient \HttpPluginClientBuilder ;
8+ use PrivatePackagist \ApiClient \HttpClient \Message \ResponseMediator ;
9+ use PrivatePackagist \ApiClient \HttpClient \Plugin \ExceptionThrower ;
810use PrivatePackagist \ApiClient \HttpClient \Plugin \PathPrepend ;
911use PrivatePackagist \ApiClient \HttpClient \Plugin \RequestSignature ;
1012
1113class Client
1214{
1315 /** @var HttpPluginClientBuilder */
1416 private $ httpClientBuilder ;
17+ /** @var ResponseMediator */
18+ private $ responseMediator ;
1519
1620 /** @param string $privatePackagistUrl */
17- public function __construct (HttpPluginClientBuilder $ httpClientBuilder = null , $ privatePackagistUrl = null )
21+ public function __construct (HttpPluginClientBuilder $ httpClientBuilder = null , $ privatePackagistUrl = null , ResponseMediator $ responseMediator = null )
1822 {
1923 $ this ->httpClientBuilder = $ builder = $ httpClientBuilder ?: new HttpPluginClientBuilder ();
2024 $ privatePackagistUrl = $ privatePackagistUrl ? : 'https://packagist.com ' ;
25+ $ this ->responseMediator = $ responseMediator ? $ responseMediator : new ResponseMediator ();
2126
2227 $ builder ->addPlugin (new Plugin \AddHostPlugin (UriFactoryDiscovery::find ()->createUri ($ privatePackagistUrl )));
2328 $ builder ->addPlugin (new PathPrepend ('/api ' ));
2429 $ builder ->addPlugin (new Plugin \HeaderDefaultsPlugin ([
25- 'User-Agent ' => 'php-private-packagist-api (http ://github.com/packagist/private-packagist-api) ' , // @todo
30+ 'User-Agent ' => 'php-private-packagist-api (https ://github.com/packagist/private-packagist-api-client ) ' ,
2631 ]));
32+ $ builder ->addPlugin (new ExceptionThrower ($ this ->responseMediator ));
2733 }
2834
2935 /**
@@ -38,12 +44,12 @@ public function authenticate($token, $secret)
3844
3945 public function customers ()
4046 {
41- return new Api \Customers ($ this );
47+ return new Api \Customers ($ this , $ this -> responseMediator );
4248 }
4349
4450 public function packages ()
4551 {
46- return new Api \Packages ($ this );
52+ return new Api \Packages ($ this , $ this -> responseMediator );
4753 }
4854
4955 public function getHttpClient ()
0 commit comments