From 1f6e3dd979cb210558f1c221fe5488c93429e35a Mon Sep 17 00:00:00 2001 From: Alix JEUDI--LEMOINE Date: Wed, 6 Mar 2024 14:32:28 +0100 Subject: [PATCH] Ajout interface + service utilisateur --- .../sae/services/UtilisateurService.java | 51 +++++++++++++++++++ .../interfaces/IUtilisateurService.java | 12 +++++ 2 files changed, 63 insertions(+) create mode 100644 SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/UtilisateurService.java create mode 100644 SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/interfaces/IUtilisateurService.java diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/UtilisateurService.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/UtilisateurService.java new file mode 100644 index 0000000..878613d --- /dev/null +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/UtilisateurService.java @@ -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; + } +} diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/interfaces/IUtilisateurService.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/interfaces/IUtilisateurService.java new file mode 100644 index 0000000..73af590 --- /dev/null +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/interfaces/IUtilisateurService.java @@ -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); +}