From 99649d95798205c5f39cd107741b7cfbee9b96fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillaume=20Perr=C3=A9al?= <guillaume.perreal@irstea.fr> Date: Wed, 28 Jan 2015 15:10:35 +0100 Subject: [PATCH] =?UTF-8?q?UploadedFileRepository:=20g=C3=A8re=20RejectedF?= =?UTF-8?q?ileException=20dans=20completed().?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Entity/Repository/UploadedFileRepository.php | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/Entity/Repository/UploadedFileRepository.php b/Entity/Repository/UploadedFileRepository.php index 4f538704..fd55f6d5 100644 --- a/Entity/Repository/UploadedFileRepository.php +++ b/Entity/Repository/UploadedFileRepository.php @@ -11,6 +11,7 @@ use Doctrine\ORM\EntityRepository; use Gaufrette\Filesystem; use Irstea\FileUploadBundle\Entity\UploadedFile; use Irstea\FileUploadBundle\Event\FileUploadCompleteEvent; +use Irstea\FileUploadBundle\Exception\RejectedFileException; use Irstea\FileUploadBundle\FileUploadEvents; use Irstea\FileUploadBundle\Model\FileManagerInterface; use Irstea\FileUploadBundle\Model\UploadedFileInterface; @@ -105,12 +106,22 @@ class UploadedFileRepository extends EntityRepository implements FileManagerInte ->setMimeType($fs->mimeType($path)) ->setEtat(UploadedFileInterface::ETAT_ORPHELIN); - $this->eventDispatcher->dispatch(FileUploadEvents::UPLOAD_COMPLETE, new FileUploadCompleteEvent($file)); - $this->_em->persist($file); - $this->_em->flush(); - $this->log(LogLevel::INFO, 'File completed', ['file' => $file]); + try { + $this->eventDispatcher->dispatch(FileUploadEvents::UPLOAD_COMPLETE, new FileUploadCompleteEvent($file)); + + $this->_em->flush(); + $this->log(LogLevel::INFO, 'File completed', ['file' => $file]); + + } catch(RejectedFileException $ex) { + $file->setEtat(UploadedFileInterface::ETAT_REJETE); + + $this->_em->flush(); + $this->log(LogLevel::WARNING, 'File rejected', ['file' => $file, 'exception' => $ex]); + + throw $ex; + } } /** -- GitLab