feat: whoops
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				CI / Get Changed Files (pull_request) Successful in 7s
				
			
		
			
				
	
				CI / eslint (pull_request) Has been skipped
				
			
		
			
				
	
				CI / oxlint (pull_request) Has been skipped
				
			
		
			
				
	
				CI / prettier (pull_request) Has been skipped
				
			
		
			
				
	
				CI / test-build (pull_request) Has been skipped
				
			
		
			
				
	
				CI / Docker frontend validation (pull_request) Successful in 45s
				
			
		
			
				
	
				CI / Docker backend validation (pull_request) Successful in 1m2s
				
			
		
			
				
	
				CI / Checkstyle Main (pull_request) Successful in 1m1s
				
			
		
		
	
	
		
	
		
			All checks were successful
		
		
	
	CI / Get Changed Files (pull_request) Successful in 7s
				
			CI / eslint (pull_request) Has been skipped
				
			CI / oxlint (pull_request) Has been skipped
				
			CI / prettier (pull_request) Has been skipped
				
			CI / test-build (pull_request) Has been skipped
				
			CI / Docker frontend validation (pull_request) Successful in 45s
				
			CI / Docker backend validation (pull_request) Successful in 1m2s
				
			CI / Checkstyle Main (pull_request) Successful in 1m1s
				
			This commit is contained in:
		
					parent
					
						
							
								e6c34ffe90
							
						
					
				
			
			
				commit
				
					
						73710a1542
					
				
			
		
					 4 changed files with 36 additions and 44 deletions
				
			
		| 
						 | 
					@ -1,8 +1,5 @@
 | 
				
			||||||
package de.szut.casino.health;
 | 
					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.GetMapping;
 | 
				
			||||||
import org.springframework.web.bind.annotation.RestController;
 | 
					import org.springframework.web.bind.annotation.RestController;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,17 +8,8 @@ import java.util.Map;
 | 
				
			||||||
@RestController
 | 
					@RestController
 | 
				
			||||||
public class HealthController {
 | 
					public class HealthController {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Autowired
 | 
					 | 
				
			||||||
    private EmailService emailService;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @GetMapping("/health")
 | 
					    @GetMapping("/health")
 | 
				
			||||||
    public Map<String, String> healthCheck() {
 | 
					    public Map<String, String> healthCheck() {
 | 
				
			||||||
        UserEntity user = new UserEntity();
 | 
					 | 
				
			||||||
        user.setEmail("user@mail.com");
 | 
					 | 
				
			||||||
        user.setUsername("user");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        this.emailService.sendRegistrationEmail(user);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return Map.of("status", "UP");
 | 
					        return Map.of("status", "UP");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,6 +5,7 @@ import de.szut.casino.security.dto.LoginRequestDto;
 | 
				
			||||||
import de.szut.casino.security.service.AuthService;
 | 
					import de.szut.casino.security.service.AuthService;
 | 
				
			||||||
import de.szut.casino.user.dto.CreateUserDto;
 | 
					import de.szut.casino.user.dto.CreateUserDto;
 | 
				
			||||||
import de.szut.casino.user.dto.GetUserDto;
 | 
					import de.szut.casino.user.dto.GetUserDto;
 | 
				
			||||||
 | 
					import jakarta.mail.MessagingException;
 | 
				
			||||||
import jakarta.validation.Valid;
 | 
					import jakarta.validation.Valid;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.http.ResponseEntity;
 | 
					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.RequestMapping;
 | 
				
			||||||
import org.springframework.web.bind.annotation.RestController;
 | 
					import org.springframework.web.bind.annotation.RestController;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@RestController
 | 
					@RestController
 | 
				
			||||||
@RequestMapping("/auth")
 | 
					@RequestMapping("/auth")
 | 
				
			||||||
public class AuthController {
 | 
					public class AuthController {
 | 
				
			||||||
| 
						 | 
					@ -27,7 +30,7 @@ public class AuthController {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @PostMapping("/register")
 | 
					    @PostMapping("/register")
 | 
				
			||||||
    public ResponseEntity<GetUserDto> registerUser(@Valid @RequestBody CreateUserDto signUpRequest) {
 | 
					    public ResponseEntity<GetUserDto> registerUser(@Valid @RequestBody CreateUserDto signUpRequest) throws MessagingException, IOException {
 | 
				
			||||||
        GetUserDto response = authService.register(signUpRequest);
 | 
					        GetUserDto response = authService.register(signUpRequest);
 | 
				
			||||||
        return ResponseEntity.ok(response);
 | 
					        return ResponseEntity.ok(response);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,6 +7,7 @@ import de.szut.casino.user.UserEntity;
 | 
				
			||||||
import de.szut.casino.user.UserService;
 | 
					import de.szut.casino.user.UserService;
 | 
				
			||||||
import de.szut.casino.user.dto.CreateUserDto;
 | 
					import de.szut.casino.user.dto.CreateUserDto;
 | 
				
			||||||
import de.szut.casino.user.dto.GetUserDto;
 | 
					import de.szut.casino.user.dto.GetUserDto;
 | 
				
			||||||
 | 
					import jakarta.mail.MessagingException;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.security.authentication.AuthenticationManager;
 | 
					import org.springframework.security.authentication.AuthenticationManager;
 | 
				
			||||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 | 
					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.security.core.context.SecurityContextHolder;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Service
 | 
					@Service
 | 
				
			||||||
public class AuthService {
 | 
					public class AuthService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,6 +29,9 @@ public class AuthService {
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    private UserService userService;
 | 
					    private UserService userService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private EmailService emailService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public AuthResponseDto login(LoginRequestDto loginRequest) {
 | 
					    public AuthResponseDto login(LoginRequestDto loginRequest) {
 | 
				
			||||||
        Authentication authentication = authenticationManager.authenticate(
 | 
					        Authentication authentication = authenticationManager.authenticate(
 | 
				
			||||||
                new UsernamePasswordAuthenticationToken(
 | 
					                new UsernamePasswordAuthenticationToken(
 | 
				
			||||||
| 
						 | 
					@ -38,8 +44,11 @@ public class AuthService {
 | 
				
			||||||
        return new AuthResponseDto(jwt);
 | 
					        return new AuthResponseDto(jwt);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public GetUserDto register(CreateUserDto signUpRequest) {
 | 
					    public GetUserDto register(CreateUserDto signUpRequest) throws MessagingException, IOException {
 | 
				
			||||||
        UserEntity user = userService.createUser(signUpRequest);
 | 
					        UserEntity user = userService.createUser(signUpRequest);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this.emailService.sendRegistrationEmail(user);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return new GetUserDto(
 | 
					        return new GetUserDto(
 | 
				
			||||||
                user.getId(),
 | 
					                user.getId(),
 | 
				
			||||||
                user.getEmail(),
 | 
					                user.getEmail(),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,39 +23,31 @@ public class EmailService {
 | 
				
			||||||
    private String feUrl;
 | 
					    private String feUrl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public EmailService(JavaMailSenderImpl mailSender, MailConfig mailConfig) {
 | 
					    public EmailService(JavaMailSenderImpl mailSender, MailConfig mailConfig) {
 | 
				
			||||||
        try {
 | 
					        this.mailSender = mailSender;
 | 
				
			||||||
            this.mailSender = mailSender;
 | 
					        this.mailConfig = mailConfig;
 | 
				
			||||||
            this.mailConfig = mailConfig;
 | 
					        this.mailSender.setHost(mailConfig.host);
 | 
				
			||||||
            this.mailSender.setHost(mailConfig.host);
 | 
					        this.mailSender.setPort(mailConfig.port);
 | 
				
			||||||
            this.mailSender.setPort(mailConfig.port);
 | 
					        if (mailConfig.authenticationEnabled) {
 | 
				
			||||||
            if (mailConfig.authenticationEnabled) {
 | 
					            this.mailSender.setUsername(mailConfig.username);
 | 
				
			||||||
                this.mailSender.setUsername(mailConfig.username);
 | 
					            this.mailSender.setPassword(mailConfig.password);
 | 
				
			||||||
                this.mailSender.setPassword(mailConfig.password);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        } catch (Exception e) {
 | 
					 | 
				
			||||||
            System.out.println(e.getMessage());
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void sendRegistrationEmail(UserEntity user) {
 | 
					    public void sendRegistrationEmail(UserEntity user) throws IOException, MessagingException {
 | 
				
			||||||
        try {
 | 
					        String template = loadTemplate("email/welcome.html");
 | 
				
			||||||
            String template = loadTemplate("email/welcome.html");
 | 
					        String htmlContent = template
 | 
				
			||||||
            String htmlContent = template
 | 
					                .replace("${username}", user.getUsername())
 | 
				
			||||||
                    .replace("${username}", user.getUsername())
 | 
					                .replace("${feUrl}", feUrl);
 | 
				
			||||||
                    .replace("${feUrl}", feUrl);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            MimeMessage message = mailSender.createMimeMessage();
 | 
					        MimeMessage message = mailSender.createMimeMessage();
 | 
				
			||||||
            MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
 | 
					        MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            helper.setFrom(mailConfig.fromAddress);
 | 
					        helper.setFrom(mailConfig.fromAddress);
 | 
				
			||||||
            helper.setTo(user.getEmail());
 | 
					        helper.setTo(user.getEmail());
 | 
				
			||||||
            helper.setSubject("Willkommen bei Trustworthy Casino©");
 | 
					        helper.setSubject("Willkommen bei Trustworthy Casino©");
 | 
				
			||||||
            helper.setText(htmlContent, true);
 | 
					        helper.setText(htmlContent, true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            mailSender.send(message);
 | 
					        mailSender.send(message);
 | 
				
			||||||
        } catch (MessagingException | IOException e) {
 | 
					 | 
				
			||||||
            System.err.println("Failed to send registration email: " + e.getMessage());
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private String loadTemplate(String templatePath) throws IOException {
 | 
					    private String loadTemplate(String templatePath) throws IOException {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue