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;
|
||||
|
||||
import fr.iut.sciencequest.sae.entities.Joueur;
|
||||
import fr.iut.sciencequest.sae.entities.Partie;
|
||||
import fr.iut.sciencequest.sae.exceptions.partie.PartyAlreadyStartedException;
|
||||
import fr.iut.sciencequest.sae.entities.Invite;
|
||||
import fr.iut.sciencequest.sae.entities.Thematique;
|
||||
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.ThematiqueNotFoundException;
|
||||
import fr.iut.sciencequest.sae.repositories.InviteRepository;
|
||||
import fr.iut.sciencequest.sae.repositories.JoueurRepository;
|
||||
import fr.iut.sciencequest.sae.repositories.PartieRepository;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.PersistenceContext;
|
||||
import fr.iut.sciencequest.sae.repositories.ThematiqueRepository;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@AllArgsConstructor
|
||||
@Service
|
||||
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