Skip to content

Commit bc012ab

Browse files
authored
Merge pull request #27 from packagist/t/ResourceNotFound-add-request-uri
Add request uri to ResourceNotFoundException
2 parents f8a84e1 + 23903da commit bc012ab

File tree

3 files changed

+36
-4
lines changed

3 files changed

+36
-4
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
/*
4+
* (c) Packagist Conductors UG (haftungsbeschränkt) <contact@packagist.com>
5+
*
6+
* For the full copyright and license information, please view the LICENSE
7+
* file that was distributed with this source code.
8+
*/
9+
10+
namespace PrivatePackagist\ApiClient\Exception;
11+
12+
use Throwable;
13+
14+
class HttpTransportException extends RuntimeException
15+
{
16+
private $requestUri;
17+
18+
public function __construct($message = "", $code = 0, $requestUri = "", Throwable $previous = null)
19+
{
20+
$this->requestUri = $requestUri;
21+
parent::__construct($message, $code, $previous);
22+
}
23+
24+
/**
25+
* @return string
26+
*/
27+
public function getRequestUri()
28+
{
29+
return $this->requestUri;
30+
}
31+
}

src/Exception/ResourceNotFoundException.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@
99

1010
namespace PrivatePackagist\ApiClient\Exception;
1111

12-
class ResourceNotFoundException extends RuntimeException
12+
class ResourceNotFoundException extends HttpTransportException
1313
{
1414
}

src/HttpClient/Plugin/ExceptionThrower.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
use Http\Client\Common\Plugin;
1313
use PrivatePackagist\ApiClient\Exception\ErrorException;
14+
use PrivatePackagist\ApiClient\Exception\HttpTransportException;
1415
use PrivatePackagist\ApiClient\Exception\ResourceNotFoundException;
1516
use PrivatePackagist\ApiClient\Exception\RuntimeException;
1617
use PrivatePackagist\ApiClient\HttpClient\Message\ResponseMediator;
@@ -29,7 +30,7 @@ public function __construct(ResponseMediator $responseMediator = null)
2930

3031
public function handleRequest(RequestInterface $request, callable $next, callable $first)
3132
{
32-
return $next($request)->then(function (ResponseInterface $response) {
33+
return $next($request)->then(function (ResponseInterface $response) use ($request) {
3334
if ($response->getStatusCode() < 400 || $response->getStatusCode() > 600) {
3435
return $response;
3536
}
@@ -41,11 +42,11 @@ public function handleRequest(RequestInterface $request, callable $next, callabl
4142
}
4243

4344
if ($response->getStatusCode() === 404) {
44-
throw new ResourceNotFoundException($content['message'], $response->getStatusCode());
45+
throw new ResourceNotFoundException($content['message'], $response->getStatusCode(), $request->getUri());
4546
}
4647
}
4748

48-
throw new RuntimeException(isset($content['message']) ? $content['message'] : $content, $response->getStatusCode());
49+
throw new HttpTransportException(isset($content['message']) ? $content['message'] : $content, $response->getStatusCode(), $request->getUri());
4950
});
5051
}
5152
}

0 commit comments

Comments
 (0)