forked from tom.biard/ScienceQuest
parent
1a0382e9d0
commit
3f61e5252e
@ -0,0 +1,14 @@
|
||||
package fr.iut.sciencequest.sae.controllers.request;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class PartieReponse {
|
||||
@NotNull
|
||||
private int idReponse;
|
||||
@NotNull
|
||||
private int idJoueur;
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package fr.iut.sciencequest.sae.dto.reponse;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.*;
|
||||
import org.springframework.hateoas.RepresentationModel;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class ReponseValideDTO extends RepresentationModel<ReponseValideDTO> {
|
||||
@NotNull
|
||||
@NotBlank
|
||||
private boolean estValide;
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package fr.iut.sciencequest.sae.entities;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name="reponsepartiekahootjoueur")
|
||||
public class ReponsePartieKahoot {
|
||||
@EmbeddedId
|
||||
private ReponsePartieKahootKey id = new ReponsePartieKahootKey();
|
||||
|
||||
@JsonBackReference
|
||||
@ManyToOne
|
||||
@MapsId("idQuestion")
|
||||
@JoinColumn(name = "idquestion")
|
||||
private Question question;
|
||||
|
||||
@JsonBackReference
|
||||
@ManyToOne
|
||||
@MapsId("idPartie")
|
||||
@JoinColumn(name="idpartie")
|
||||
private PartieKahoot partie;
|
||||
|
||||
@JsonBackReference
|
||||
@ManyToOne
|
||||
@MapsId("idJoueur")
|
||||
@JoinColumn(name="idjoueur")
|
||||
private Joueur joueur;
|
||||
|
||||
@JsonBackReference
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "idreponse")
|
||||
private Reponse reponse;
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package fr.iut.sciencequest.sae.entities;
|
||||
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Embeddable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
@Embeddable
|
||||
public class ReponsePartieKahootKey implements Serializable {
|
||||
@Column(name="idquestion")
|
||||
private Integer idQuestion;
|
||||
|
||||
@Column(name="idpartie")
|
||||
private Integer idPartie;
|
||||
|
||||
@Column(name="idjoueur")
|
||||
private Integer idJoueur;
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package fr.iut.sciencequest.sae.exceptions.notFound;
|
||||
|
||||
public class ReponseNotFoundException extends EntityNotFoundException{
|
||||
public ReponseNotFoundException(int id) {
|
||||
super("Reponse", id);
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package fr.iut.sciencequest.sae.exceptions.partie;
|
||||
|
||||
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
|
||||
@ResponseStatus(HttpStatus.PRECONDITION_FAILED)
|
||||
public class JoueurPasDansPartieException extends RuntimeException {
|
||||
public JoueurPasDansPartieException() {
|
||||
super("Le joueur n'est pas présent dans la partie");
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package fr.iut.sciencequest.sae.exceptions.partie;
|
||||
|
||||
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
|
||||
@ResponseStatus(HttpStatus.FORBIDDEN)
|
||||
public class QuestionDejaReponduException extends RuntimeException {
|
||||
public QuestionDejaReponduException() {
|
||||
super("Le joueur a déjà répondu à la question");
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package fr.iut.sciencequest.sae.exceptions.partie;
|
||||
|
||||
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
|
||||
@ResponseStatus(HttpStatus.PRECONDITION_FAILED)
|
||||
public class ReponseIncoherenteException extends RuntimeException {
|
||||
public ReponseIncoherenteException() {
|
||||
super("La réponse ne correspond pas à la question en cours");
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package fr.iut.sciencequest.sae.exceptions.partie;
|
||||
|
||||
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
|
||||
@ResponseStatus(HttpStatus.PRECONDITION_FAILED)
|
||||
public class ReponseTempsLimiteDepasseException extends RuntimeException {
|
||||
public ReponseTempsLimiteDepasseException() {
|
||||
super("La réponse a été donné trop tard");
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package fr.iut.sciencequest.sae.repositories;
|
||||
|
||||
import fr.iut.sciencequest.sae.entities.ReponsePartieKahoot;
|
||||
import fr.iut.sciencequest.sae.entities.ReponsePartieKahootKey;
|
||||
import fr.iut.sciencequest.sae.entities.ScorePartieKahootJoueur;
|
||||
import fr.iut.sciencequest.sae.entities.ScorePartieKahootJoueurKey;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface ReponsePartieKahootRepository extends CrudRepository<ReponsePartieKahoot, ReponsePartieKahootKey> {}
|
@ -0,0 +1,28 @@
|
||||
package fr.iut.sciencequest.sae.services;
|
||||
|
||||
import fr.iut.sciencequest.sae.entities.Difficulte;
|
||||
import fr.iut.sciencequest.sae.entities.Question;
|
||||
import fr.iut.sciencequest.sae.entities.Reponse;
|
||||
import fr.iut.sciencequest.sae.entities.Thematique;
|
||||
import fr.iut.sciencequest.sae.exceptions.notFound.ReponseNotFoundException;
|
||||
import fr.iut.sciencequest.sae.exceptions.notFound.ThematiqueNotFoundException;
|
||||
import fr.iut.sciencequest.sae.repositories.QuestionRepository;
|
||||
import fr.iut.sciencequest.sae.repositories.ReponseRepository;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@AllArgsConstructor
|
||||
@Service
|
||||
public class ReponseService {
|
||||
private final ReponseRepository reponseRepository;
|
||||
public Reponse findById(int id) {
|
||||
return this.reponseRepository.findById(id).orElseThrow(() ->
|
||||
new ReponseNotFoundException(id)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in new issue