From fb4fe8f283aa60af9385002786edb8cf9c84cf78 Mon Sep 17 00:00:00 2001 From: visoulier Date: Wed, 28 Feb 2024 03:59:21 +0100 Subject: [PATCH] ajustement nom exception --- .../sae/controllers/PartieController.java | 5 ++--- .../controllers/ScientifiqueController.java | 6 ++--- .../exceptions/DuplicatedFieldException.java | 22 +++++++++++++++++++ 3 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/DuplicatedFieldException.java diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/PartieController.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/PartieController.java index 51747ea..3b79801 100644 --- a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/PartieController.java +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/PartieController.java @@ -1,7 +1,7 @@ package fr.iut.sciencequest.sae.controllers; import fr.iut.sciencequest.sae.entities.Partie; -import fr.iut.sciencequest.sae.exceptions.DuplicatedEntity; +import fr.iut.sciencequest.sae.exceptions.DuplicatedFieldException; import fr.iut.sciencequest.sae.exceptions.PartieNotFoundException; import fr.iut.sciencequest.sae.repositories.PartieRepository; import jakarta.servlet.http.HttpServletRequest; @@ -13,7 +13,6 @@ import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; -import javax.print.attribute.standard.Media; import java.util.Optional; @RestController @@ -44,7 +43,7 @@ public class PartieController { try { return this.partieRepository.save(partie); } catch (DataIntegrityViolationException e) { - throw new DuplicatedEntity("ERREUR : il existe déjà une partie : " + partie.getId() + " en base"); + throw new DuplicatedFieldException("ERREUR : il existe déjà une partie : " + partie.getId() + " en base"); } } diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/ScientifiqueController.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/ScientifiqueController.java index 4c101e5..27c0dcf 100644 --- a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/ScientifiqueController.java +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/ScientifiqueController.java @@ -4,7 +4,7 @@ import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import fr.iut.sciencequest.sae.entities.Indice; import fr.iut.sciencequest.sae.entities.Scientifique; -import fr.iut.sciencequest.sae.exceptions.DuplicatedEntity; +import fr.iut.sciencequest.sae.exceptions.DuplicatedFieldException; import fr.iut.sciencequest.sae.exceptions.IncorrectPageException; import fr.iut.sciencequest.sae.exceptions.ScientifiqueNotFoundException; import fr.iut.sciencequest.sae.repositories.IndiceRepository; @@ -20,10 +20,8 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; -import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -109,7 +107,7 @@ public class ScientifiqueController { return this.indiceRepository.save(indice); } catch (DataIntegrityViolationException e){ - throw new DuplicatedEntity(e.getMessage()); + throw new DuplicatedFieldException(e.getMessage()); } } } diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/DuplicatedFieldException.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/DuplicatedFieldException.java new file mode 100644 index 0000000..f4c33aa --- /dev/null +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/DuplicatedFieldException.java @@ -0,0 +1,22 @@ +package fr.iut.sciencequest.sae.exceptions; + + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +import java.util.List; + +import static org.hibernate.internal.util.collections.CollectionHelper.listOf; + +@ResponseStatus(HttpStatus.CONFLICT) +public class DuplicatedFieldException extends RuntimeException { + + //TODO : retourner une erreur avec le msg + LA LISTE des fields concernés en format JSON + public DuplicatedFieldException(String field){ + super("Unicity constraints broken on fields :" + listOf(field)); + } + + public DuplicatedFieldException(List fields){ + super("Unicity constraints broken on fields :" + fields); + } +}