From 2c9022ed267b8c84e1e817418a3d73632a1d9709 Mon Sep 17 00:00:00 2001 From: Jessie Ragot <jessie.ragot@hotmail.com> Date: Thu, 20 Mar 2025 15:05:18 +0100 Subject: [PATCH] Adding an empty medical record to a patient's registration --- .../projetIndu/services/UserService.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/projet/projetIndu/services/UserService.java b/src/main/java/com/projet/projetIndu/services/UserService.java index 3d883a1..a65d15f 100644 --- a/src/main/java/com/projet/projetIndu/services/UserService.java +++ b/src/main/java/com/projet/projetIndu/services/UserService.java @@ -1,11 +1,9 @@ package com.projet.projetIndu.services; import com.projet.projetIndu.dto.UserRegistrationDTO; -import com.projet.projetIndu.entities.Doctor; -import com.projet.projetIndu.entities.Patient; -import com.projet.projetIndu.entities.Role; -import com.projet.projetIndu.entities.User; +import com.projet.projetIndu.entities.*; import com.projet.projetIndu.repositories.UserRepository; +import jakarta.transaction.Transactional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; @@ -22,11 +20,13 @@ import java.util.Optional; public class UserService implements UserDetailsService { private final UserRepository userRepository; private final BCryptPasswordEncoder passwordEncoder; + private final MedicalFileService medicalFileService; @Autowired - public UserService(UserRepository userRepository, BCryptPasswordEncoder passwordEncoder) { + public UserService(UserRepository userRepository, BCryptPasswordEncoder passwordEncoder, MedicalFileService medicalFileService) { this.userRepository = userRepository; this.passwordEncoder = passwordEncoder; + this.medicalFileService = medicalFileService; } public List<User> getAllUsers() { @@ -49,6 +49,7 @@ public class UserService implements UserDetailsService { userRepository.deleteById(id); } + @Transactional public User registerUser(UserRegistrationDTO userDTO) { if (userRepository.existsByEmail(userDTO.getEmail())) { throw new IllegalArgumentException("Email already taken"); @@ -87,9 +88,15 @@ public class UserService implements UserDetailsService { user.setPassword(encodedPassword); user.setRole(userDTO.getRole()); - return userRepository.save(user); - } + User savedUser = userRepository.save(user); + if (savedUser instanceof Patient) { + MedicalFile medicalFile = new MedicalFile((Patient) savedUser, "", ""); + medicalFileService.saveMedicalFiles(medicalFile); + } + + return savedUser; + } @Override public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException { @@ -102,6 +109,4 @@ public class UserService implements UserDetailsService { .authorities(user.getClass().getSimpleName()) .build(); } - } - -- GitLab