From b58c6beab06396e0cd203dd4f3980b942d56c7c4 Mon Sep 17 00:00:00 2001 From: visoulier Date: Sun, 31 Mar 2024 00:53:25 +0100 Subject: [PATCH] =?UTF-8?q?ajout=20route=20pour=20d=C3=A9marrer=20une=20pa?= =?UTF-8?q?rtie=20kahoot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/PartieKahootController.java | 13 ++++++++++ .../partie/PartieKahootStatusDTO.java | 25 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 SpringBootProject/src/main/java/fr/iut/sciencequest/sae/dto/partieKahoot/partie/PartieKahootStatusDTO.java diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/PartieKahootController.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/PartieKahootController.java index 4cd053f..cc0e235 100644 --- a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/PartieKahootController.java +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/PartieKahootController.java @@ -5,6 +5,7 @@ import fr.iut.sciencequest.sae.controllers.request.PartieAddJoueurRequest; import fr.iut.sciencequest.sae.controllers.request.PartieRequest; import fr.iut.sciencequest.sae.dto.partie.PartieDTO; import fr.iut.sciencequest.sae.dto.partieKahoot.partie.PartieKahootDTO; +import fr.iut.sciencequest.sae.dto.partieKahoot.partie.PartieKahootStatusDTO; import fr.iut.sciencequest.sae.entities.*; import fr.iut.sciencequest.sae.exceptions.partie.PartyAlreadyStartedException; import fr.iut.sciencequest.sae.services.*; @@ -67,4 +68,16 @@ public class PartieKahootController { return this.modelMapper.map(this.partieKahootService.update(partie), PartieKahootDTO.class); } + @PostMapping(value = "/{codeInvitation}/demarrer", produces = MediaType.APPLICATION_JSON_VALUE) + @ResponseStatus(HttpStatus.OK) + public PartieKahootStatusDTO demarrerPartie(@PathVariable String codeInvitation){ + PartieKahoot partieKahoot = this.partieKahootService.getPartieKahootByIdOrCodeInvitation(codeInvitation); + if(partieKahoot.getStatus() == Status.Started){ + throw new PartyAlreadyStartedException(); + } + partieKahoot.setStatus(Status.Started); + this.partieKahootService.update(partieKahoot); + return this.modelMapper.map(partieKahoot, PartieKahootStatusDTO.class); + } + } diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/dto/partieKahoot/partie/PartieKahootStatusDTO.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/dto/partieKahoot/partie/PartieKahootStatusDTO.java new file mode 100644 index 0000000..7f37871 --- /dev/null +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/dto/partieKahoot/partie/PartieKahootStatusDTO.java @@ -0,0 +1,25 @@ +package fr.iut.sciencequest.sae.dto.partieKahoot.partie; + +import fr.iut.sciencequest.sae.dto.difficulte.DifficulteSimpleDTO; +import fr.iut.sciencequest.sae.dto.jeu.JeuDTO; +import fr.iut.sciencequest.sae.dto.joueur.JoueurSimpleDTO; +import fr.iut.sciencequest.sae.dto.thematique.ThematiqueSimpleDTO; +import fr.iut.sciencequest.sae.entities.Question; +import fr.iut.sciencequest.sae.entities.Status; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.*; +import org.springframework.hateoas.RepresentationModel; + +import java.util.List; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = false) +public class PartieKahootStatusDTO extends RepresentationModel { + @NotNull + private Status status; +}