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