forked from tom.biard/ScienceQuest
parent
b8982b3e8e
commit
da14da0115
@ -0,0 +1,23 @@
|
|||||||
|
package fr.iut.sciencequest.sae.dto.invite;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
import fr.iut.sciencequest.sae.dto.partie.PartieDTO;
|
||||||
|
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 InviteSimpleDTO extends RepresentationModel<InviteSimpleDTO> {
|
||||||
|
@NotNull
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
@NotBlank
|
||||||
|
private String pseudo;
|
||||||
|
}
|
@ -1,20 +1,43 @@
|
|||||||
package fr.iut.sciencequest.sae.services;
|
package fr.iut.sciencequest.sae.services;
|
||||||
|
|
||||||
import fr.iut.sciencequest.sae.entities.Joueur;
|
import fr.iut.sciencequest.sae.entities.Invite;
|
||||||
import fr.iut.sciencequest.sae.entities.Partie;
|
import fr.iut.sciencequest.sae.entities.Thematique;
|
||||||
import fr.iut.sciencequest.sae.exceptions.partie.PartyAlreadyStartedException;
|
import fr.iut.sciencequest.sae.exceptions.DuplicatedFieldException;
|
||||||
|
import fr.iut.sciencequest.sae.exceptions.DuplicatedIdException;
|
||||||
import fr.iut.sciencequest.sae.exceptions.notFound.InviteNotFoundException;
|
import fr.iut.sciencequest.sae.exceptions.notFound.InviteNotFoundException;
|
||||||
|
import fr.iut.sciencequest.sae.exceptions.notFound.ThematiqueNotFoundException;
|
||||||
|
import fr.iut.sciencequest.sae.repositories.InviteRepository;
|
||||||
import fr.iut.sciencequest.sae.repositories.JoueurRepository;
|
import fr.iut.sciencequest.sae.repositories.JoueurRepository;
|
||||||
import fr.iut.sciencequest.sae.repositories.PartieRepository;
|
import fr.iut.sciencequest.sae.repositories.ThematiqueRepository;
|
||||||
import jakarta.persistence.EntityManager;
|
|
||||||
import jakarta.persistence.PersistenceContext;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Service
|
@Service
|
||||||
public class InviteService {
|
public class InviteService {
|
||||||
|
private final InviteRepository inviteRepository;
|
||||||
|
private final JoueurRepository joueurRepository;
|
||||||
|
|
||||||
|
private void checkFieldsConstraints(Invite invite){
|
||||||
|
if(this.joueurRepository.existsByPseudo(invite.getPseudo())){
|
||||||
|
throw new DuplicatedFieldException("pseudo");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public Invite update(Invite invite){
|
||||||
|
if(!this.joueurRepository.existsById(invite.getId())){
|
||||||
|
throw new InviteNotFoundException(invite.getId());
|
||||||
|
}
|
||||||
|
this.checkFieldsConstraints(invite);
|
||||||
|
return this.inviteRepository.save(invite);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Invite create(Invite invite){
|
||||||
|
if(invite.getId() != null && this.joueurRepository.existsById(invite.getId())){
|
||||||
|
throw new DuplicatedIdException();
|
||||||
|
}
|
||||||
|
this.checkFieldsConstraints(invite);
|
||||||
|
return this.inviteRepository.save(invite);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in new issue