Skip to content
Snippets Groups Projects
Commit 2c9022ed authored by Jessie Ragot's avatar Jessie Ragot
Browse files

Adding an empty medical record to a patient's registration

parent c1a02578
No related branches found
No related tags found
No related merge requests found
package com.projet.projetIndu.services; package com.projet.projetIndu.services;
import com.projet.projetIndu.dto.UserRegistrationDTO; import com.projet.projetIndu.dto.UserRegistrationDTO;
import com.projet.projetIndu.entities.Doctor; import com.projet.projetIndu.entities.*;
import com.projet.projetIndu.entities.Patient;
import com.projet.projetIndu.entities.Role;
import com.projet.projetIndu.entities.User;
import com.projet.projetIndu.repositories.UserRepository; import com.projet.projetIndu.repositories.UserRepository;
import jakarta.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UserDetailsService;
...@@ -22,11 +20,13 @@ import java.util.Optional; ...@@ -22,11 +20,13 @@ import java.util.Optional;
public class UserService implements UserDetailsService { public class UserService implements UserDetailsService {
private final UserRepository userRepository; private final UserRepository userRepository;
private final BCryptPasswordEncoder passwordEncoder; private final BCryptPasswordEncoder passwordEncoder;
private final MedicalFileService medicalFileService;
@Autowired @Autowired
public UserService(UserRepository userRepository, BCryptPasswordEncoder passwordEncoder) { public UserService(UserRepository userRepository, BCryptPasswordEncoder passwordEncoder, MedicalFileService medicalFileService) {
this.userRepository = userRepository; this.userRepository = userRepository;
this.passwordEncoder = passwordEncoder; this.passwordEncoder = passwordEncoder;
this.medicalFileService = medicalFileService;
} }
public List<User> getAllUsers() { public List<User> getAllUsers() {
...@@ -49,6 +49,7 @@ public class UserService implements UserDetailsService { ...@@ -49,6 +49,7 @@ public class UserService implements UserDetailsService {
userRepository.deleteById(id); userRepository.deleteById(id);
} }
@Transactional
public User registerUser(UserRegistrationDTO userDTO) { public User registerUser(UserRegistrationDTO userDTO) {
if (userRepository.existsByEmail(userDTO.getEmail())) { if (userRepository.existsByEmail(userDTO.getEmail())) {
throw new IllegalArgumentException("Email already taken"); throw new IllegalArgumentException("Email already taken");
...@@ -87,9 +88,15 @@ public class UserService implements UserDetailsService { ...@@ -87,9 +88,15 @@ public class UserService implements UserDetailsService {
user.setPassword(encodedPassword); user.setPassword(encodedPassword);
user.setRole(userDTO.getRole()); 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 @Override
public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException { public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
...@@ -102,6 +109,4 @@ public class UserService implements UserDetailsService { ...@@ -102,6 +109,4 @@ public class UserService implements UserDetailsService {
.authorities(user.getClass().getSimpleName()) .authorities(user.getClass().getSimpleName())
.build(); .build();
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment