diff --git a/backend/src/main/java/de/szut/casino/blackjack/BlackJackGameController.java b/backend/src/main/java/de/szut/casino/blackjack/BlackJackGameController.java index df104dc..03d4a46 100644 --- a/backend/src/main/java/de/szut/casino/blackjack/BlackJackGameController.java +++ b/backend/src/main/java/de/szut/casino/blackjack/BlackJackGameController.java @@ -59,7 +59,13 @@ public class BlackJackGameController { @PostMapping("/blackjack/start") public ResponseEntity createBlackJackGame(@RequestBody @Valid BetDto betDto) { - UserEntity user = this.userService.getCurrentUser(); + Optional optionalUser = userService.getCurrentUser(); + + if (optionalUser.isEmpty()) { + throw new UserNotFoundException(); + } + + UserEntity user = optionalUser.get(); if (!this.balanceService.hasFunds(user, betDto)) { throw new InsufficientFundsException(); @@ -69,7 +75,13 @@ public class BlackJackGameController { } private BlackJackGameEntity getBlackJackGame(Long gameId) { - UserEntity user = userService.getCurrentUser(); + Optional optionalUser = userService.getCurrentUser(); + + if (optionalUser.isEmpty()) { + throw new UserNotFoundException(); + } + + UserEntity user = optionalUser.get(); BlackJackGameEntity game = blackJackService.getBlackJackGame(gameId); if (game == null || !Objects.equals(game.getUserId(), user.getId())) { throw new UserBlackJackGameMismatchException(gameId); diff --git a/backend/src/main/java/de/szut/casino/coinflip/CoinflipController.java b/backend/src/main/java/de/szut/casino/coinflip/CoinflipController.java index 7cc0c83..0a526f1 100644 --- a/backend/src/main/java/de/szut/casino/coinflip/CoinflipController.java +++ b/backend/src/main/java/de/szut/casino/coinflip/CoinflipController.java @@ -28,7 +28,13 @@ public class CoinflipController { @PostMapping("/coinflip") public ResponseEntity coinFlip(@RequestBody @Valid CoinflipDto coinflipDto) { - UserEntity user = userService.getCurrentUser(); + Optional optionalUser = userService.getCurrentUser(); + + if (optionalUser.isEmpty()) { + throw new UserNotFoundException(); + } + + UserEntity user = optionalUser.get(); if (!this.balanceService.hasFunds(user, coinflipDto)) { throw new InsufficientFundsException(); diff --git a/backend/src/main/java/de/szut/casino/deposit/DepositController.java b/backend/src/main/java/de/szut/casino/deposit/DepositController.java index d99da00..e64e428 100644 --- a/backend/src/main/java/de/szut/casino/deposit/DepositController.java +++ b/backend/src/main/java/de/szut/casino/deposit/DepositController.java @@ -16,6 +16,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RestController; +import java.util.Optional; + @RestController public class DepositController { @@ -27,7 +29,7 @@ public class DepositController { private final TransactionService transactionService; - private final UserService userService; + private UserService userService; public DepositController(TransactionService transactionService, UserService userService) { this.transactionService = transactionService; @@ -38,7 +40,7 @@ public class DepositController { public ResponseEntity checkout(@RequestBody @Valid AmountDto amountDto, @RequestHeader("Authorization") String token) throws StripeException { Stripe.apiKey = stripeKey; - UserEntity user = userService.getCurrentUser(); + Optional optionalUserEntity = this.userService.getCurrentUser(); SessionCreateParams params = SessionCreateParams.builder() .addLineItem(SessionCreateParams.LineItem.builder() @@ -58,7 +60,11 @@ public class DepositController { Session session = Session.create(params); - transactionService.createTransaction(user, session.getId(), amountDto.getAmount()); + if (optionalUserEntity.isEmpty()) { + throw new RuntimeException("User doesnt exist"); + } + + transactionService.createTransaction(optionalUserEntity.get(), session.getId(), amountDto.getAmount()); return ResponseEntity.ok(new SessionIdDto(session.getId())); } diff --git a/backend/src/main/java/de/szut/casino/dice/DiceController.java b/backend/src/main/java/de/szut/casino/dice/DiceController.java index 1341d96..949a002 100644 --- a/backend/src/main/java/de/szut/casino/dice/DiceController.java +++ b/backend/src/main/java/de/szut/casino/dice/DiceController.java @@ -27,7 +27,13 @@ public class DiceController { @PostMapping("/dice") public ResponseEntity rollDice(@RequestBody @Valid DiceDto diceDto) { - UserEntity user = userService.getCurrentUser(); + Optional optionalUser = userService.getCurrentUser(); + + if (optionalUser.isEmpty()) { + throw new UserNotFoundException(); + } + + UserEntity user = optionalUser.get(); if (!this.balanceService.hasFunds(user, diceDto)) { throw new InsufficientFundsException(); diff --git a/backend/src/main/java/de/szut/casino/lootboxes/LootBoxController.java b/backend/src/main/java/de/szut/casino/lootboxes/LootBoxController.java index 4b7d971..5018914 100644 --- a/backend/src/main/java/de/szut/casino/lootboxes/LootBoxController.java +++ b/backend/src/main/java/de/szut/casino/lootboxes/LootBoxController.java @@ -38,7 +38,13 @@ public class LootBoxController { } LootBoxEntity lootBox = optionalLootBox.get(); - UserEntity user = userService.getCurrentUser(); + + Optional optionalUser = userService.getCurrentUser(); + if (optionalUser.isEmpty()) { + throw new UserNotFoundException(); + } + + UserEntity user = optionalUser.get(); if (lootBoxService.hasSufficientBalance(user, lootBox.getPrice())) { throw new InsufficientFundsException(); 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 f0387c7..561fc3c 100644 --- a/backend/src/main/java/de/szut/casino/security/AuthController.java +++ b/backend/src/main/java/de/szut/casino/security/AuthController.java @@ -9,6 +9,7 @@ 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; import org.springframework.web.bind.annotation.*; @@ -19,11 +20,8 @@ import java.io.IOException; public class AuthController { - private final AuthService authService; - - public AuthController(AuthService authService) { - this.authService = authService; - } + @Autowired + private AuthService authService; @PostMapping("/login") public ResponseEntity authenticateUser(@Valid @RequestBody LoginRequestDto loginRequest) throws EmailNotVerifiedException { diff --git a/backend/src/main/java/de/szut/casino/security/SecurityConfig.java b/backend/src/main/java/de/szut/casino/security/SecurityConfig.java index 9268cf2..740739e 100644 --- a/backend/src/main/java/de/szut/casino/security/SecurityConfig.java +++ b/backend/src/main/java/de/szut/casino/security/SecurityConfig.java @@ -1,6 +1,7 @@ package de.szut.casino.security; import de.szut.casino.security.jwt.JwtAuthenticationFilter; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -31,13 +32,11 @@ public class SecurityConfig { @Value("${app.frontend-host}") private String frontendHost; - private final UserDetailsService userDetailsService; - private final JwtAuthenticationFilter jwtAuthenticationFilter; + @Autowired + private UserDetailsService userDetailsService; - public SecurityConfig(UserDetailsService userDetailsService, JwtAuthenticationFilter jwtAuthenticationFilter) { - this.userDetailsService = userDetailsService; - this.jwtAuthenticationFilter = jwtAuthenticationFilter; - } + @Autowired + private JwtAuthenticationFilter jwtAuthenticationFilter; @Bean diff --git a/backend/src/main/java/de/szut/casino/security/jwt/JwtAuthenticationFilter.java b/backend/src/main/java/de/szut/casino/security/jwt/JwtAuthenticationFilter.java index 4766f4a..38da0b3 100644 --- a/backend/src/main/java/de/szut/casino/security/jwt/JwtAuthenticationFilter.java +++ b/backend/src/main/java/de/szut/casino/security/jwt/JwtAuthenticationFilter.java @@ -4,6 +4,7 @@ import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; @@ -18,13 +19,11 @@ import java.io.IOException; @Component public class JwtAuthenticationFilter extends OncePerRequestFilter { - private final JwtUtils jwtUtils; - private final UserDetailsService userDetailsService; + @Autowired + private JwtUtils jwtUtils; - public JwtAuthenticationFilter(JwtUtils jwtUtils, UserDetailsService userDetailsService) { - this.jwtUtils = jwtUtils; - this.userDetailsService = userDetailsService; - } + @Autowired + private UserDetailsService userDetailsService; @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) diff --git a/backend/src/main/java/de/szut/casino/security/oauth2/CustomOAuth2UserService.java b/backend/src/main/java/de/szut/casino/security/oauth2/CustomOAuth2UserService.java index a8bda84..eb09b27 100644 --- a/backend/src/main/java/de/szut/casino/security/oauth2/CustomOAuth2UserService.java +++ b/backend/src/main/java/de/szut/casino/security/oauth2/CustomOAuth2UserService.java @@ -4,6 +4,7 @@ import de.szut.casino.exceptionHandling.exceptions.OAuth2AuthenticationProcessin import de.szut.casino.user.AuthProvider; import de.szut.casino.user.UserEntity; import de.szut.casino.user.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.InternalAuthenticationServiceException; import org.springframework.security.core.AuthenticationException; import org.springframework.security.crypto.password.PasswordEncoder; @@ -21,13 +22,11 @@ import java.util.UUID; @Service public class CustomOAuth2UserService extends DefaultOAuth2UserService { - private final UserRepository userRepository; - private final PasswordEncoder oauth2PasswordEncoder; + @Autowired + private UserRepository userRepository; - public CustomOAuth2UserService(UserRepository userRepository, PasswordEncoder oauth2PasswordEncoder) { - this.userRepository = userRepository; - this.oauth2PasswordEncoder = oauth2PasswordEncoder; - } + @Autowired + private PasswordEncoder oauth2PasswordEncoder; @Override public OAuth2User loadUser(OAuth2UserRequest oAuth2UserRequest) throws OAuth2AuthenticationException { diff --git a/backend/src/main/java/de/szut/casino/security/oauth2/OAuth2AuthenticationSuccessHandler.java b/backend/src/main/java/de/szut/casino/security/oauth2/OAuth2AuthenticationSuccessHandler.java index 75eb6b6..778fa88 100644 --- a/backend/src/main/java/de/szut/casino/security/oauth2/OAuth2AuthenticationSuccessHandler.java +++ b/backend/src/main/java/de/szut/casino/security/oauth2/OAuth2AuthenticationSuccessHandler.java @@ -5,6 +5,7 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler; @@ -20,11 +21,8 @@ public class OAuth2AuthenticationSuccessHandler extends SimpleUrlAuthenticationS @Value("${app.oauth2.authorizedRedirectUris}") private String redirectUri; - private final JwtUtils jwtUtils; - - public OAuth2AuthenticationSuccessHandler(JwtUtils jwtUtils) { - this.jwtUtils = jwtUtils; - } + @Autowired + private JwtUtils jwtUtils; @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) diff --git a/backend/src/main/java/de/szut/casino/security/oauth2/github/GitHubController.java b/backend/src/main/java/de/szut/casino/security/oauth2/github/GitHubController.java index 2fe6279..9abf96c 100644 --- a/backend/src/main/java/de/szut/casino/security/oauth2/github/GitHubController.java +++ b/backend/src/main/java/de/szut/casino/security/oauth2/github/GitHubController.java @@ -3,6 +3,7 @@ package de.szut.casino.security.oauth2.github; import de.szut.casino.security.dto.AuthResponseDto; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -22,11 +23,8 @@ public class GitHubController { @Value("${spring.security.oauth2.client.registration.github.redirect-uri}") private String redirectUri; - private final GitHubService githubService; - - public GitHubController(GitHubService githubService) { - this.githubService = githubService; - } + @Autowired + private GitHubService githubService; @GetMapping("/authorize") public RedirectView authorizeGithub() { diff --git a/backend/src/main/java/de/szut/casino/security/oauth2/github/GitHubService.java b/backend/src/main/java/de/szut/casino/security/oauth2/github/GitHubService.java index 3c7d22f..4a8df24 100644 --- a/backend/src/main/java/de/szut/casino/security/oauth2/github/GitHubService.java +++ b/backend/src/main/java/de/szut/casino/security/oauth2/github/GitHubService.java @@ -5,6 +5,7 @@ import de.szut.casino.security.jwt.JwtUtils; import de.szut.casino.user.AuthProvider; import de.szut.casino.user.UserEntity; import de.szut.casino.user.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -28,17 +29,17 @@ public class GitHubService { @Value("${spring.security.oauth2.client.registration.github.client-secret}") private String clientSecret; - private final AuthenticationManager authenticationManager; - private final UserRepository userRepository; - private final JwtUtils jwtUtils; - private final PasswordEncoder oauth2PasswordEncoder; + @Autowired + private AuthenticationManager authenticationManager; - public GitHubService(AuthenticationManager authenticationManager, UserRepository userRepository, JwtUtils jwtUtils, PasswordEncoder oauth2PasswordEncoder) { - this.authenticationManager = authenticationManager; - this.userRepository = userRepository; - this.jwtUtils = jwtUtils; - this.oauth2PasswordEncoder = oauth2PasswordEncoder; - } + @Autowired + private UserRepository userRepository; + + @Autowired + private JwtUtils jwtUtils; + + @Autowired + private PasswordEncoder oauth2PasswordEncoder; public AuthResponseDto processGithubCode(String code) { try { diff --git a/backend/src/main/java/de/szut/casino/security/oauth2/google/GoogleController.java b/backend/src/main/java/de/szut/casino/security/oauth2/google/GoogleController.java index 9a50f65..30907f8 100644 --- a/backend/src/main/java/de/szut/casino/security/oauth2/google/GoogleController.java +++ b/backend/src/main/java/de/szut/casino/security/oauth2/google/GoogleController.java @@ -4,6 +4,7 @@ import de.szut.casino.security.dto.AuthResponseDto; import de.szut.casino.security.oauth2.github.GithubCallbackDto; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -23,11 +24,8 @@ public class GoogleController { @Value("${spring.security.oauth2.client.registration.google.redirect-uri}") private String redirectUri; - private final GoogleService googleService; - - public GoogleController(GoogleService googleService) { - this.googleService = googleService; - } + @Autowired + private GoogleService googleService; @GetMapping("/authorize") public RedirectView authorizeGoogle() { diff --git a/backend/src/main/java/de/szut/casino/security/oauth2/google/GoogleService.java b/backend/src/main/java/de/szut/casino/security/oauth2/google/GoogleService.java index f369052..fd30303 100644 --- a/backend/src/main/java/de/szut/casino/security/oauth2/google/GoogleService.java +++ b/backend/src/main/java/de/szut/casino/security/oauth2/google/GoogleService.java @@ -7,6 +7,7 @@ import de.szut.casino.user.UserEntity; import de.szut.casino.user.UserRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -22,9 +23,7 @@ import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; import java.math.BigDecimal; -import java.util.Map; -import java.util.Optional; -import java.util.UUID; +import java.util.*; @Service public class GoogleService { @@ -45,17 +44,17 @@ public class GoogleService { @Value("${spring.security.oauth2.client.provider.google.user-info-uri}") private String userInfoUri; - private final AuthenticationManager authenticationManager; - private final UserRepository userRepository; - private final JwtUtils jwtUtils; - private final PasswordEncoder oauth2PasswordEncoder; + @Autowired + private AuthenticationManager authenticationManager; - public GoogleService(AuthenticationManager authenticationManager, UserRepository userRepository, JwtUtils jwtUtils, PasswordEncoder oauth2PasswordEncoder) { - this.authenticationManager = authenticationManager; - this.userRepository = userRepository; - this.jwtUtils = jwtUtils; - this.oauth2PasswordEncoder = oauth2PasswordEncoder; - } + @Autowired + private UserRepository userRepository; + + @Autowired + private JwtUtils jwtUtils; + + @Autowired + private PasswordEncoder oauth2PasswordEncoder; public AuthResponseDto processGoogleCode(String code) { try { 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 734cf9f..ffe06ae 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 @@ -11,6 +11,7 @@ import de.szut.casino.user.dto.CreateUserDto; import de.szut.casino.user.dto.GetUserDto; import jakarta.mail.MessagingException; import org.apache.commons.lang3.RandomStringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; @@ -24,19 +25,20 @@ import java.util.Optional; @Service public class AuthService { - private final AuthenticationManager authenticationManager; - private final JwtUtils jwtUtils; - private final UserService userService; - private final EmailService emailService; - private final PasswordEncoder passwordEncoder; + @Autowired + private AuthenticationManager authenticationManager; - public AuthService(AuthenticationManager authenticationManager, JwtUtils jwtUtils, UserService userService, EmailService emailService, PasswordEncoder passwordEncoder) { - this.authenticationManager = authenticationManager; - this.jwtUtils = jwtUtils; - this.userService = userService; - this.emailService = emailService; - this.passwordEncoder = passwordEncoder; - } + @Autowired + private JwtUtils jwtUtils; + + @Autowired + private UserService userService; + + @Autowired + private EmailService emailService; + + @Autowired + private PasswordEncoder passwordEncoder; public AuthResponseDto login(LoginRequestDto loginRequest) throws EmailNotVerifiedException { if (!userService.isVerified(loginRequest.getUsernameOrEmail())) { diff --git a/backend/src/main/java/de/szut/casino/security/service/UserDetailsServiceImpl.java b/backend/src/main/java/de/szut/casino/security/service/UserDetailsServiceImpl.java index 2b710fc..8d4018b 100644 --- a/backend/src/main/java/de/szut/casino/security/service/UserDetailsServiceImpl.java +++ b/backend/src/main/java/de/szut/casino/security/service/UserDetailsServiceImpl.java @@ -2,6 +2,7 @@ package de.szut.casino.security.service; import de.szut.casino.user.UserEntity; import de.szut.casino.user.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; @@ -13,11 +14,8 @@ import java.util.Optional; @Service public class UserDetailsServiceImpl implements UserDetailsService { - private final UserRepository userRepository; - - public UserDetailsServiceImpl(UserRepository userRepository) { - this.userRepository = userRepository; - } + @Autowired + private UserRepository userRepository; @Override public UserDetails loadUserByUsername(String usernameOrEmail) throws UsernameNotFoundException { diff --git a/backend/src/main/java/de/szut/casino/slots/SlotController.java b/backend/src/main/java/de/szut/casino/slots/SlotController.java index ff29d3d..b55e2b7 100644 --- a/backend/src/main/java/de/szut/casino/slots/SlotController.java +++ b/backend/src/main/java/de/szut/casino/slots/SlotController.java @@ -32,7 +32,13 @@ public class SlotController { @PostMapping("/slots/spin") public ResponseEntity spinSlots(@RequestBody @Valid BetDto betDto) { - UserEntity user = userService.getCurrentUser(); + Optional optionalUser = userService.getCurrentUser(); + + if (optionalUser.isEmpty()) { + throw new UserNotFoundException(); + } + + UserEntity user = optionalUser.get(); if (!this.balanceService.hasFunds(user, betDto)) { throw new InsufficientFundsException(); diff --git a/backend/src/main/java/de/szut/casino/user/UserController.java b/backend/src/main/java/de/szut/casino/user/UserController.java index f08721d..6255a03 100644 --- a/backend/src/main/java/de/szut/casino/user/UserController.java +++ b/backend/src/main/java/de/szut/casino/user/UserController.java @@ -2,6 +2,7 @@ package de.szut.casino.user; import de.szut.casino.user.dto.GetUserDto; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; @@ -14,17 +15,14 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/users") public class UserController { - private final UserService userService; + @Autowired + private UserService userService; - private final UserMappingService userMappingService; - - public UserController(UserService userService, UserMappingService userMappingService) { - this.userService = userService; - this.userMappingService = userMappingService; - } + @Autowired + private UserMappingService userMappingService; @GetMapping("/me") public ResponseEntity getCurrentUser() { - return ResponseEntity.ok(userMappingService.mapToGetUserDto(userService.getCurrentUser())); + return ResponseEntity.ok(userMappingService.mapToGetUserDto(userService.getCurrentUser().orElseThrow())); } } diff --git a/backend/src/main/java/de/szut/casino/user/UserService.java b/backend/src/main/java/de/szut/casino/user/UserService.java index 341db86..03ad02d 100644 --- a/backend/src/main/java/de/szut/casino/user/UserService.java +++ b/backend/src/main/java/de/szut/casino/user/UserService.java @@ -1,9 +1,9 @@ package de.szut.casino.user; -import de.szut.casino.exceptionHandling.exceptions.UserNotFoundException; import de.szut.casino.user.dto.CreateUserDto; import jakarta.persistence.EntityExistsException; import org.apache.commons.lang3.RandomStringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; @@ -13,13 +13,11 @@ import java.util.Optional; @Service public class UserService { - private final UserRepository userRepository; - private final PasswordEncoder passwordEncoder; + @Autowired + private UserRepository userRepository; - public UserService(UserRepository userRepository, PasswordEncoder passwordEncoder) { - this.userRepository = userRepository; - this.passwordEncoder = passwordEncoder; - } + @Autowired + private PasswordEncoder passwordEncoder; public UserEntity createUser(CreateUserDto createUserDto) { if (userRepository.existsByUsername(createUserDto.getUsername())) { @@ -41,15 +39,10 @@ public class UserService { return userRepository.save(user); } - public UserEntity getCurrentUser() { + public Optional getCurrentUser() { String username = SecurityContextHolder.getContext().getAuthentication().getName(); - Optional optionalUser = userRepository.findByUsername(username); - if (optionalUser.isEmpty()) { - throw new UserNotFoundException(); - } - - return optionalUser.get(); + return userRepository.findByUsername(username); } public Optional getUserByVerificationToken(String token) { diff --git a/backend/src/main/java/de/szut/casino/user/transaction/GetTransactionService.java b/backend/src/main/java/de/szut/casino/user/transaction/GetTransactionService.java index 11fff4f..2a8350f 100644 --- a/backend/src/main/java/de/szut/casino/user/transaction/GetTransactionService.java +++ b/backend/src/main/java/de/szut/casino/user/transaction/GetTransactionService.java @@ -6,29 +6,31 @@ import de.szut.casino.user.UserEntity; import de.szut.casino.user.UserService; import de.szut.casino.user.transaction.dto.GetTransactionDto; import de.szut.casino.user.transaction.dto.UserTransactionsDto; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Optional; @Service public class GetTransactionService { - private final UserService userService; + @Autowired + private UserService userService; - private final TransactionRepository transactionRepository; + @Autowired + private TransactionRepository transactionRepository; - public GetTransactionService(UserService userService, TransactionRepository transactionRepository) { - this.userService = userService; - this.transactionRepository = transactionRepository; - } + public UserTransactionsDto getUserTransactionsDto(String authToken, Integer limit, Integer offset) { + Optional user = this.userService.getCurrentUser(); + if (user.isPresent()) { + List transactionEntities = this.transactionRepository.findByUserIdWithLimit(user.get(), limit, offset); + Boolean hasMore = this.transactionRepository.hasMore(user.get(), limit, offset); - public UserTransactionsDto getUserTransactionsDto(Integer limit, Integer offset) { - UserEntity user = userService.getCurrentUser(); + return new UserTransactionsDto(mapTransactionsToDtos(transactionEntities), hasMore); + } - List transactionEntities = this.transactionRepository.findByUserIdWithLimit(user, limit, offset); - Boolean hasMore = this.transactionRepository.hasMore(user, limit, offset); - - return new UserTransactionsDto(mapTransactionsToDtos(transactionEntities), hasMore); + return new UserTransactionsDto(List.of(), false); } public List mapTransactionsToDtos(List transactions) { diff --git a/backend/src/main/java/de/szut/casino/user/transaction/TransactionController.java b/backend/src/main/java/de/szut/casino/user/transaction/TransactionController.java index f8a57de..8aa74a6 100644 --- a/backend/src/main/java/de/szut/casino/user/transaction/TransactionController.java +++ b/backend/src/main/java/de/szut/casino/user/transaction/TransactionController.java @@ -1,26 +1,26 @@ package de.szut.casino.user.transaction; import de.szut.casino.user.transaction.dto.UserTransactionsDto; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class TransactionController { - private final GetTransactionService transactionService; - - public TransactionController(GetTransactionService transactionService) { - this.transactionService = transactionService; - } + @Autowired + private GetTransactionService transactionService; @GetMapping("/user/transactions") public ResponseEntity getUserTransactions( + @RequestHeader("Authorization") String authToken, @RequestParam(value = "limit", required = false) Integer limit, @RequestParam(value = "offset", required = false) Integer offset ) { - UserTransactionsDto transactionEntities = this.transactionService.getUserTransactionsDto(limit, offset); + UserTransactionsDto transactionEntities = this.transactionService.getUserTransactionsDto(authToken, limit, offset); return ResponseEntity.ok(transactionEntities); }