6
6
use Psr \Http \Message \RequestInterface ;
7
7
use Psr \Http \Message \ResponseInterface ;
8
8
use Http \Client \Exception \HttpException ;
9
+ use Opensaucesystems \Lxd \Exception \BadRequestException ;
9
10
use Opensaucesystems \Lxd \Exception \OperationException ;
10
11
use Opensaucesystems \Lxd \Exception \AuthenticationFailedException ;
11
12
use Opensaucesystems \Lxd \Exception \NotFoundException ;
@@ -23,25 +24,29 @@ class LxdExceptionThower implements Plugin
23
24
public function handleRequest (RequestInterface $ request , callable $ next , callable $ first )
24
25
{
25
26
$ promise = $ next ($ request );
26
-
27
+
27
28
return $ promise ->then (function (ResponseInterface $ response ) use ($ request ) {
28
29
return $ response ;
29
30
}, function (\Exception $ e ) use ($ request ) {
30
31
if (get_class ($ e ) === HttpException::class) {
31
32
$ response = $ e ->getResponse ();
32
33
34
+ if (400 === $ response ->getStatusCode ()) {
35
+ throw new BadRequestException ($ request , $ response , $ e );
36
+ }
37
+
33
38
if (401 === $ response ->getStatusCode ()) {
34
39
throw new OperationException ($ request , $ response , $ e );
35
40
}
36
41
37
42
if (403 === $ response ->getStatusCode ()) {
38
43
throw new AuthenticationFailedException ($ request , $ response , $ e );
39
44
}
40
-
45
+
41
46
if (404 === $ response ->getStatusCode ()) {
42
47
throw new NotFoundException ($ request , $ response , $ e );
43
48
}
44
-
49
+
45
50
if (409 === $ response ->getStatusCode ()) {
46
51
throw new ConflictException ($ request , $ response , $ e );
47
52
}
0 commit comments