From 21209524be632ba86e8d2c19351dd80bbfc5f435 Mon Sep 17 00:00:00 2001
From: Phan Huy Tran
Date: Thu, 15 May 2025 10:27:43 +0200
Subject: [PATCH] feat: implement coinflip api
---
.../de/szut/casino/coinflip/CoinSide.java | 6 +++
.../casino/coinflip/CoinflipController.java | 45 +++++++++++++++++++
.../de/szut/casino/coinflip/CoinflipDto.java | 20 +++++++++
.../szut/casino/coinflip/CoinflipResult.java | 15 +++++++
.../szut/casino/coinflip/CoinflipService.java | 34 ++++++++++++++
.../casino/shared/service/BalanceService.java | 2 +-
6 files changed, 121 insertions(+), 1 deletion(-)
create mode 100644 backend/src/main/java/de/szut/casino/coinflip/CoinSide.java
create mode 100644 backend/src/main/java/de/szut/casino/coinflip/CoinflipController.java
create mode 100644 backend/src/main/java/de/szut/casino/coinflip/CoinflipDto.java
create mode 100644 backend/src/main/java/de/szut/casino/coinflip/CoinflipResult.java
create mode 100644 backend/src/main/java/de/szut/casino/coinflip/CoinflipService.java
diff --git a/backend/src/main/java/de/szut/casino/coinflip/CoinSide.java b/backend/src/main/java/de/szut/casino/coinflip/CoinSide.java
new file mode 100644
index 0000000..f369cb4
--- /dev/null
+++ b/backend/src/main/java/de/szut/casino/coinflip/CoinSide.java
@@ -0,0 +1,6 @@
+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
new file mode 100644
index 0000000..0a526f1
--- /dev/null
+++ b/backend/src/main/java/de/szut/casino/coinflip/CoinflipController.java
@@ -0,0 +1,45 @@
+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