diff --git a/backend/src/main/java/de/szut/casino/coinflip/CoinSide.java b/backend/src/main/java/de/szut/casino/coinflip/CoinSide.java deleted file mode 100644 index f369cb4..0000000 --- a/backend/src/main/java/de/szut/casino/coinflip/CoinSide.java +++ /dev/null @@ -1,6 +0,0 @@ -package de.szut.casino.coinflip; - -public enum CoinSide { - HEAD, - TAILS; -} diff --git a/backend/src/main/java/de/szut/casino/coinflip/CoinflipController.java b/backend/src/main/java/de/szut/casino/coinflip/CoinflipController.java deleted file mode 100644 index 0a526f1..0000000 --- a/backend/src/main/java/de/szut/casino/coinflip/CoinflipController.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.szut.casino.coinflip; - -import de.szut.casino.exceptionHandling.exceptions.InsufficientFundsException; -import de.szut.casino.exceptionHandling.exceptions.UserNotFoundException; -import de.szut.casino.shared.service.BalanceService; -import de.szut.casino.user.UserEntity; -import de.szut.casino.user.UserService; -import jakarta.validation.Valid; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Optional; - -@RestController -public class CoinflipController { - private final UserService userService; - private final BalanceService balanceService; - private final CoinflipService coinflipService; - - public CoinflipController(UserService userService, BalanceService balanceService, CoinflipService coinflipService) { - this.userService = userService; - this.balanceService = balanceService; - this.coinflipService = coinflipService; - } - - - @PostMapping("/coinflip") - public ResponseEntity coinFlip(@RequestBody @Valid CoinflipDto coinflipDto) { - Optional optionalUser = userService.getCurrentUser(); - - if (optionalUser.isEmpty()) { - throw new UserNotFoundException(); - } - - UserEntity user = optionalUser.get(); - - if (!this.balanceService.hasFunds(user, coinflipDto)) { - throw new InsufficientFundsException(); - } - - return ResponseEntity.ok(coinflipService.play(user, coinflipDto)); - } -} diff --git a/backend/src/main/java/de/szut/casino/coinflip/CoinflipDto.java b/backend/src/main/java/de/szut/casino/coinflip/CoinflipDto.java deleted file mode 100644 index 8d5a47b..0000000 --- a/backend/src/main/java/de/szut/casino/coinflip/CoinflipDto.java +++ /dev/null @@ -1,20 +0,0 @@ -package de.szut.casino.coinflip; - -import de.szut.casino.shared.dto.BetDto; -import jakarta.validation.constraints.NotNull; -import lombok.Getter; -import lombok.Setter; - -import java.math.BigDecimal; - -@Getter -@Setter -public class CoinflipDto extends BetDto { - @NotNull(message = "chosen side cannot be null") - private CoinSide coinSide; - - public CoinflipDto(BigDecimal betAmount, CoinSide coinSide) { - super(betAmount); - this.coinSide = coinSide; - } -} diff --git a/backend/src/main/java/de/szut/casino/coinflip/CoinflipResult.java b/backend/src/main/java/de/szut/casino/coinflip/CoinflipResult.java deleted file mode 100644 index 71ead05..0000000 --- a/backend/src/main/java/de/szut/casino/coinflip/CoinflipResult.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.szut.casino.coinflip; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.Setter; - -import java.math.BigDecimal; - -@AllArgsConstructor -@Setter -@Getter -public class CoinflipResult { - private boolean isWin; - private BigDecimal payout; -} diff --git a/backend/src/main/java/de/szut/casino/coinflip/CoinflipService.java b/backend/src/main/java/de/szut/casino/coinflip/CoinflipService.java deleted file mode 100644 index 4cdc3e1..0000000 --- a/backend/src/main/java/de/szut/casino/coinflip/CoinflipService.java +++ /dev/null @@ -1,34 +0,0 @@ -package de.szut.casino.coinflip; - -import de.szut.casino.shared.service.BalanceService; -import de.szut.casino.user.UserEntity; -import org.springframework.stereotype.Service; - -import java.math.BigDecimal; -import java.util.Random; - -@Service -public class CoinflipService { - private final Random random = new Random(); - private final BalanceService balanceService; - - public CoinflipService(BalanceService balanceService) { - this.balanceService = balanceService; - } - - public CoinflipResult play(UserEntity user, CoinflipDto coinflipDto) { - this.balanceService.subtractFunds(user, coinflipDto.getBetAmount()); - - CoinflipResult coinflipResult = new CoinflipResult(false, BigDecimal.ZERO); - CoinSide coinSide = this.random.nextBoolean() ? CoinSide.HEAD : CoinSide.TAILS; - if (coinSide == coinflipDto.getCoinSide()) { - coinflipResult.setWin(true); - - BigDecimal payout = coinflipDto.getBetAmount().multiply(BigDecimal.TWO); - this.balanceService.addFunds(user, payout); - coinflipResult.setPayout(payout); - } - - return coinflipResult; - } -} diff --git a/backend/src/main/java/de/szut/casino/shared/service/BalanceService.java b/backend/src/main/java/de/szut/casino/shared/service/BalanceService.java index 048840b..40e6caa 100644 --- a/backend/src/main/java/de/szut/casino/shared/service/BalanceService.java +++ b/backend/src/main/java/de/szut/casino/shared/service/BalanceService.java @@ -9,7 +9,7 @@ import java.math.BigDecimal; @Service public class BalanceService { - private final UserRepository userRepository; + private UserRepository userRepository; public BalanceService(UserRepository userRepository) { this.userRepository = userRepository;