diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/assemblers/PartieModelAssembler.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/assemblers/PartieModelAssembler.java index 5828adf..614c60a 100644 --- a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/assemblers/PartieModelAssembler.java +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/assemblers/PartieModelAssembler.java @@ -21,4 +21,5 @@ public class PartieModelAssembler extends RepresentationModelAssemblerSupport pagedResourcesAssembler; private final PartieService partieService; @RequestMapping(value = "/{id}",method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @@ -38,16 +24,10 @@ public class PartieController extends Controller { return partieModelAssembler.toModel(partie); } - /* @RequestMapping(method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseStatus(HttpStatus.CREATED) - public Partie createPartie(@RequestBody Partie partie) { - try { - return this.partieRepository.save(partie); - } catch (DataIntegrityViolationException e) { - throw new DuplicatedFieldException("ERREUR : il existe déjà une partie : " + partie.getId() + " en base"); - } - }*/ - + public Partie createPartie(@RequestBody Integer idJeu, Integer idUtilisateur, List thematiques, Integer idDifficulte) { + return this.partieService.create(idJeu, idUtilisateur, thematiques, idDifficulte); + } } diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/MalformedPartyException.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/MalformedPartyException.java new file mode 100644 index 0000000..8a5a734 --- /dev/null +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/MalformedPartyException.java @@ -0,0 +1,11 @@ +package fr.iut.sciencequest.sae.exceptions; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +@ResponseStatus(HttpStatus.NOT_ACCEPTABLE) +public class MalformedPartyException extends RuntimeException { + public MalformedPartyException(String message) { + super(message); + } +} diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/PartieService.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/PartieService.java index b7e7e1b..6d51e26 100644 --- a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/PartieService.java +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/PartieService.java @@ -7,19 +7,34 @@ import fr.iut.sciencequest.sae.services.interfaces.IPartieService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; -import java.util.Optional; +import java.util.List; @AllArgsConstructor @Service public class PartieService implements IPartieService { private final PartieRepository partieRepository; + /*private final JeuRepository jeuRepository; + private final UtilisateurRepository utilisateurRepository; + private final ThematiqueRepository thematiqueRepository; + private final DifficulteRepository difficulteRepository;*/ public Partie findById(int id) { return this.partieRepository.findById(id).orElseThrow(() -> new PartieNotFoundException("Partie", id) ); } - public Partie save(Partie p) { + public Partie create(Integer idJeu, Integer idUtilisateur, List thematiques, Integer idDifficulte) { + /*try { + Jeu jeu = jeuService.findById(idJeu); + + if(partie.getJeu().getNom() == null) { + throw new MalformedPartyException("Party's game id is not given or is a false value"); + } + + return this.partieRepository.save(partie); + } catch (DataIntegrityViolationException e) { + throw new DuplicatedFieldException("ERREUR : il existe déjà une partie : " + partie.getId() + " en base"); + }*/ return new Partie(); } } diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/interfaces/IPartieService.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/interfaces/IPartieService.java index 50897a1..f324ad9 100644 --- a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/interfaces/IPartieService.java +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/interfaces/IPartieService.java @@ -2,7 +2,9 @@ package fr.iut.sciencequest.sae.services.interfaces; import fr.iut.sciencequest.sae.entities.Partie; +import java.util.List; + public interface IPartieService { Partie findById(int id); - Partie save(Partie p); + Partie create(Integer idJeu, Integer idUtilisateur, List thematiques, Integer idDifficulte); }