Skip to content

Commit b1dacfb

Browse files
Return http bad request if civility can not be deleted
1 parent 6c502d0 commit b1dacfb

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

app/src/Controller/CivilityController.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use App\Entity\Civility;
66
use App\Form\CivilityType;
77
use App\Service\CivilityServiceInterface;
8+
use Doctrine\DBAL\Exception\ForeignKeyConstraintViolationException;
89
use FOS\RestBundle\Controller\AbstractFOSRestController;
910
use FOS\RestBundle\Controller\Annotations as Rest;
1011
use FOS\RestBundle\View\View;
@@ -16,6 +17,7 @@
1617
use Symfony\Component\Form\Form;
1718
use Symfony\Component\HttpFoundation\Request;
1819
use Symfony\Component\HttpFoundation\Response;
20+
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
1921

2022
/**
2123
* Controller used to managed Civility resource.
@@ -204,7 +206,11 @@ public function putCivility(Request $request, Civility $civility): View
204206
*/
205207
public function deleteCivility(Request $request, Civility $civility): View
206208
{
207-
$this->civilityService->deleteCivility($civility);
209+
try {
210+
$this->civilityService->deleteCivility($civility);
211+
} catch (ForeignKeyConstraintViolationException $e) {
212+
throw new BadRequestHttpException('You can not delete this entity');
213+
}
208214

209215
return $this->view([], Response::HTTP_NO_CONTENT);
210216
}

app/src/Migrations/Version20190707102406.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,25 @@
1212
*/
1313
final class Version20190707102406 extends AbstractMigration
1414
{
15-
public function getDescription() : string
15+
public function getDescription(): string
1616
{
1717
return '';
1818
}
1919

20-
public function up(Schema $schema) : void
20+
public function up(Schema $schema): void
2121
{
2222
// this up() migration is auto-generated, please modify it to your needs
23-
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.');
23+
$this->abortIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\'.');
2424

2525
$this->addSql('ALTER TABLE fos_user DROP FOREIGN KEY FK_957A647923D6A298');
2626
$this->addSql('ALTER TABLE fos_user CHANGE civility_id civility_id INT NOT NULL');
2727
$this->addSql('ALTER TABLE fos_user ADD CONSTRAINT FK_957A647923D6A298 FOREIGN KEY (civility_id) REFERENCES civility (id)');
2828
}
2929

30-
public function down(Schema $schema) : void
30+
public function down(Schema $schema): void
3131
{
3232
// this down() migration is auto-generated, please modify it to your needs
33-
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.');
33+
$this->abortIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\'.');
3434

3535
$this->addSql('ALTER TABLE fos_user DROP FOREIGN KEY FK_957A647923D6A298');
3636
$this->addSql('ALTER TABLE fos_user CHANGE civility_id civility_id INT DEFAULT NULL');

0 commit comments

Comments
 (0)