diff --git a/src/Bundle/ChillDocStoreBundle/AsyncUpload/Exception/BadCallToRemoteServer.php b/src/Bundle/ChillDocStoreBundle/AsyncUpload/Exception/BadCallToRemoteServer.php new file mode 100644 index 000000000..58ddfe0b0 --- /dev/null +++ b/src/Bundle/ChillDocStoreBundle/AsyncUpload/Exception/BadCallToRemoteServer.php @@ -0,0 +1,20 @@ +client->request('HEAD', $urlHead->url); - if (404 === $response->getStatusCode()) { + if (404 === $status = $response->getStatusCode()) { $this->context->buildViolation($constraint->message) ->setParameter('{{ filename }}', $file) ->addViolation(); + } elseif (500 <= $status) { + throw new TempUrlRemoteServerException($response->getStatusCode()); + } elseif (400 <= $status) { + throw new BadCallToRemoteServer($response->getContent(false), $response->getStatusCode()); } } catch (HttpExceptionInterface $exception) { if (404 !== $exception->getResponse()->getStatusCode()) { throw $exception; } + } catch (TransportExceptionInterface $e) { + throw new TempUrlRemoteServerException(0, previous: $e); } } }