diff --git a/backend/src/main/java/de/szut/casino/health/HealthController.java b/backend/src/main/java/de/szut/casino/health/HealthController.java index dbe873e..da05352 100644 --- a/backend/src/main/java/de/szut/casino/health/HealthController.java +++ b/backend/src/main/java/de/szut/casino/health/HealthController.java @@ -1,8 +1,5 @@ package de.szut.casino.health; -import de.szut.casino.security.service.EmailService; -import de.szut.casino.user.UserEntity; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -11,17 +8,8 @@ import java.util.Map; @RestController public class HealthController { - @Autowired - private EmailService emailService; - @GetMapping("/health") public Map healthCheck() { - UserEntity user = new UserEntity(); - user.setEmail("user@mail.com"); - user.setUsername("user"); - - this.emailService.sendRegistrationEmail(user); - return Map.of("status", "UP"); } } diff --git a/backend/src/main/java/de/szut/casino/security/AuthController.java b/backend/src/main/java/de/szut/casino/security/AuthController.java index b5c0639..6d99625 100644 --- a/backend/src/main/java/de/szut/casino/security/AuthController.java +++ b/backend/src/main/java/de/szut/casino/security/AuthController.java @@ -5,6 +5,7 @@ import de.szut.casino.security.dto.LoginRequestDto; import de.szut.casino.security.service.AuthService; import de.szut.casino.user.dto.CreateUserDto; import de.szut.casino.user.dto.GetUserDto; +import jakarta.mail.MessagingException; import jakarta.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; @@ -13,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.io.IOException; + @RestController @RequestMapping("/auth") public class AuthController { @@ -27,7 +30,7 @@ public class AuthController { } @PostMapping("/register") - public ResponseEntity registerUser(@Valid @RequestBody CreateUserDto signUpRequest) { + public ResponseEntity registerUser(@Valid @RequestBody CreateUserDto signUpRequest) throws MessagingException, IOException { GetUserDto response = authService.register(signUpRequest); return ResponseEntity.ok(response); } diff --git a/backend/src/main/java/de/szut/casino/security/service/AuthService.java b/backend/src/main/java/de/szut/casino/security/service/AuthService.java index 88687ba..ed2b70c 100644 --- a/backend/src/main/java/de/szut/casino/security/service/AuthService.java +++ b/backend/src/main/java/de/szut/casino/security/service/AuthService.java @@ -7,6 +7,7 @@ import de.szut.casino.user.UserEntity; import de.szut.casino.user.UserService; import de.szut.casino.user.dto.CreateUserDto; import de.szut.casino.user.dto.GetUserDto; +import jakarta.mail.MessagingException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; @@ -14,6 +15,8 @@ import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; +import java.io.IOException; + @Service public class AuthService { @@ -26,6 +29,9 @@ public class AuthService { @Autowired private UserService userService; + @Autowired + private EmailService emailService; + public AuthResponseDto login(LoginRequestDto loginRequest) { Authentication authentication = authenticationManager.authenticate( new UsernamePasswordAuthenticationToken( @@ -38,8 +44,11 @@ public class AuthService { return new AuthResponseDto(jwt); } - public GetUserDto register(CreateUserDto signUpRequest) { + public GetUserDto register(CreateUserDto signUpRequest) throws MessagingException, IOException { UserEntity user = userService.createUser(signUpRequest); + + this.emailService.sendRegistrationEmail(user); + return new GetUserDto( user.getId(), user.getEmail(), diff --git a/backend/src/main/java/de/szut/casino/security/service/EmailService.java b/backend/src/main/java/de/szut/casino/security/service/EmailService.java index dba1439..fb875b8 100644 --- a/backend/src/main/java/de/szut/casino/security/service/EmailService.java +++ b/backend/src/main/java/de/szut/casino/security/service/EmailService.java @@ -23,41 +23,33 @@ public class EmailService { private String feUrl; public EmailService(JavaMailSenderImpl mailSender, MailConfig mailConfig) { - try { - this.mailSender = mailSender; - this.mailConfig = mailConfig; - this.mailSender.setHost(mailConfig.host); - this.mailSender.setPort(mailConfig.port); - if (mailConfig.authenticationEnabled) { - this.mailSender.setUsername(mailConfig.username); - this.mailSender.setPassword(mailConfig.password); - } - } catch (Exception e) { - System.out.println(e.getMessage()); + this.mailSender = mailSender; + this.mailConfig = mailConfig; + this.mailSender.setHost(mailConfig.host); + this.mailSender.setPort(mailConfig.port); + if (mailConfig.authenticationEnabled) { + this.mailSender.setUsername(mailConfig.username); + this.mailSender.setPassword(mailConfig.password); } } - public void sendRegistrationEmail(UserEntity user) { - try { - String template = loadTemplate("email/welcome.html"); - String htmlContent = template - .replace("${username}", user.getUsername()) - .replace("${feUrl}", feUrl); + public void sendRegistrationEmail(UserEntity user) throws IOException, MessagingException { + String template = loadTemplate("email/welcome.html"); + String htmlContent = template + .replace("${username}", user.getUsername()) + .replace("${feUrl}", feUrl); - MimeMessage message = mailSender.createMimeMessage(); - MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); - - helper.setFrom(mailConfig.fromAddress); - helper.setTo(user.getEmail()); - helper.setSubject("Willkommen bei Trustworthy Casino©"); - helper.setText(htmlContent, true); - - mailSender.send(message); - } catch (MessagingException | IOException e) { - System.err.println("Failed to send registration email: " + e.getMessage()); - } + MimeMessage message = mailSender.createMimeMessage(); + MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); + + helper.setFrom(mailConfig.fromAddress); + helper.setTo(user.getEmail()); + helper.setSubject("Willkommen bei Trustworthy Casino©"); + helper.setText(htmlContent, true); + + mailSender.send(message); } - + private String loadTemplate(String templatePath) throws IOException { ClassPathResource resource = new ClassPathResource("templates/" + templatePath); try (Reader reader = new InputStreamReader(resource.getInputStream(), StandardCharsets.UTF_8)) {