package enseirb.myinpulse.service.database; import enseirb.myinpulse.model.User; import enseirb.myinpulse.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.server.ResponseStatusException; import java.util.Optional; @Service public class UserService { private final UserRepository userRepository; @Autowired UserService(UserRepository userRepository) { this.userRepository = userRepository; } public Iterable getAllUsers() { return this.userRepository.findAll(); } // TODO public User getUserByEmail(String email) { Optional opt_user = this.userRepository.findByPrimaryMail(email); if (opt_user.isEmpty()) { System.err.println("Couldn't find user with email " + email); throw new ResponseStatusException(HttpStatus.NOT_FOUND); } return opt_user.get(); } public Iterable allUsers() { return this.userRepository.findAll(); } public User addUser(@RequestBody User user) { return this.userRepository.save(user); } public User updateUser( @PathVariable Long id, String userSurname, String userName, String mainMail, String secondaryMail, String phoneNumber) { Optional user = userRepository.findById(id); if (user.isEmpty()) { throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Cet utilisateur n'existe pas"); } if (userName != null) { user.get().setUserName(userName); } if (userSurname != null) { user.get().setUserSurname(userSurname); } if (mainMail != null) { user.get().setPrimaryMail(mainMail); } if (secondaryMail != null) { user.get().setSecondaryMail(secondaryMail); } if (phoneNumber != null) { user.get().setPhoneNumber(phoneNumber); } return this.userRepository.save(user.get()); } }