forked from tom.biard/ScienceQuest
parent
e9c5b9e110
commit
1f6e3dd979
@ -0,0 +1,51 @@
|
|||||||
|
package fr.iut.sciencequest.sae.services;
|
||||||
|
|
||||||
|
import fr.iut.sciencequest.sae.dto.utilisateur.UtilisateurDTO;
|
||||||
|
import fr.iut.sciencequest.sae.dto.utilisateur.UtilisateurWithPasswordDTO;
|
||||||
|
import fr.iut.sciencequest.sae.entities.Utilisateur;
|
||||||
|
import fr.iut.sciencequest.sae.exceptions.IncorrectPasswordException;
|
||||||
|
import fr.iut.sciencequest.sae.exceptions.notFound.UtilisateurNotFoundException;
|
||||||
|
import fr.iut.sciencequest.sae.repositories.UtilisateurRepository;
|
||||||
|
import fr.iut.sciencequest.sae.services.interfaces.IUtilisateurService;
|
||||||
|
import org.modelmapper.ModelMapper;
|
||||||
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class UtilisateurService implements IUtilisateurService {
|
||||||
|
|
||||||
|
private UtilisateurRepository utilisateurRepository;
|
||||||
|
private BCryptPasswordEncoder passwordEncoder;
|
||||||
|
private ModelMapper modelMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UtilisateurDTO save(UtilisateurWithPasswordDTO user) {
|
||||||
|
Utilisateur utilisateur = this.modelMapper.map(user, Utilisateur.class);
|
||||||
|
utilisateur.setMotDePasse(passwordEncoder.encode(user.getMotDePasse()));
|
||||||
|
utilisateurRepository.save(utilisateur);
|
||||||
|
return this.modelMapper.map(utilisateur, UtilisateurDTO.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UtilisateurDTO login(UtilisateurWithPasswordDTO user) {
|
||||||
|
Utilisateur utilisateur = this.findUserByEmail(user.getEmail());
|
||||||
|
if(!passwordEncoder.matches(user.getMotDePasse(), utilisateur.getMotDePasse())) {
|
||||||
|
throw new IncorrectPasswordException();
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.modelMapper.map(utilisateur, UtilisateurDTO.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Utilisateur findUserByEmail(String email) {
|
||||||
|
Utilisateur user = this.utilisateurRepository.findUtilisateurByEmail(email);
|
||||||
|
if(Objects.equals(user.getPseudo(), "")) {
|
||||||
|
throw new UtilisateurNotFoundException();
|
||||||
|
}
|
||||||
|
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package fr.iut.sciencequest.sae.services.interfaces;
|
||||||
|
|
||||||
|
import fr.iut.sciencequest.sae.dto.utilisateur.UtilisateurDTO;
|
||||||
|
import fr.iut.sciencequest.sae.dto.utilisateur.UtilisateurWithPasswordDTO;
|
||||||
|
import fr.iut.sciencequest.sae.entities.Utilisateur;
|
||||||
|
|
||||||
|
public interface IUtilisateurService {
|
||||||
|
UtilisateurDTO save(UtilisateurWithPasswordDTO user);
|
||||||
|
UtilisateurDTO login(UtilisateurWithPasswordDTO user);
|
||||||
|
|
||||||
|
Utilisateur findUserByEmail(String email);
|
||||||
|
}
|
Loading…
Reference in new issue