66use Psr \Http \Message \RequestInterface ;
77use Psr \Http \Message \ResponseInterface ;
88use Http \Client \Exception \HttpException ;
9+ use Opensaucesystems \Lxd \Exception \BadRequestException ;
910use Opensaucesystems \Lxd \Exception \OperationException ;
1011use Opensaucesystems \Lxd \Exception \AuthenticationFailedException ;
1112use Opensaucesystems \Lxd \Exception \NotFoundException ;
@@ -23,25 +24,29 @@ class LxdExceptionThower implements Plugin
2324 public function handleRequest (RequestInterface $ request , callable $ next , callable $ first )
2425 {
2526 $ promise = $ next ($ request );
26-
27+
2728 return $ promise ->then (function (ResponseInterface $ response ) use ($ request ) {
2829 return $ response ;
2930 }, function (\Exception $ e ) use ($ request ) {
3031 if (get_class ($ e ) === HttpException::class) {
3132 $ response = $ e ->getResponse ();
3233
34+ if (400 === $ response ->getStatusCode ()) {
35+ throw new BadRequestException ($ request , $ response , $ e );
36+ }
37+
3338 if (401 === $ response ->getStatusCode ()) {
3439 throw new OperationException ($ request , $ response , $ e );
3540 }
3641
3742 if (403 === $ response ->getStatusCode ()) {
3843 throw new AuthenticationFailedException ($ request , $ response , $ e );
3944 }
40-
45+
4146 if (404 === $ response ->getStatusCode ()) {
4247 throw new NotFoundException ($ request , $ response , $ e );
4348 }
44-
49+
4550 if (409 === $ response ->getStatusCode ()) {
4651 throw new ConflictException ($ request , $ response , $ e );
4752 }
0 commit comments