From 1d901c522243308e179bfecebdebf72240388230 Mon Sep 17 00:00:00 2001
From: eric <3024947@stud.hs-mannheim.de>
Date: Fri, 8 Aug 2025 00:08:09 +0200
Subject: [PATCH] =?UTF-8?q?ausw=C3=A4hlen=20von=20ger=C3=A4ten=20f=C3=BCr?=
=?UTF-8?q?=20den=20player?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
dependency-reduced-pom.xml | 6 --
pom.xml | 10 +++
.../Roullette/controller/GameController.java | 33 ++++++++-
.../Roullette/service/SpotifyAuthService.java | 73 +++++++++++++++++--
.../websocket/GameWebSocketHandler.java | 4 +-
src/main/resources/public/game.html | 3 +-
src/main/resources/public/js/device-select.js | 45 ++++++++++++
src/main/resources/public/js/game.js | 12 ++-
.../resources/public/js/spotify-player.js | 0
9 files changed, 166 insertions(+), 20 deletions(-)
create mode 100644 src/main/resources/public/js/device-select.js
create mode 100644 src/main/resources/public/js/spotify-player.js
diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml
index bd4ff2e..5fe83a3 100644
--- a/dependency-reduced-pom.xml
+++ b/dependency-reduced-pom.xml
@@ -78,12 +78,6 @@
javalin-testtools
6.7.0
test
-
-
- okhttp
- com.squareup.okhttp3
-
-
diff --git a/pom.xml b/pom.xml
index da4e0f5..12ff0a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -67,6 +67,16 @@
${javalin.version}
test
+
+ com.squareup.okhttp3
+ okhttp
+ 4.11.0
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+ 1.9.22
+
diff --git a/src/main/java/eric/Roullette/controller/GameController.java b/src/main/java/eric/Roullette/controller/GameController.java
index cadd609..077e2bb 100644
--- a/src/main/java/eric/Roullette/controller/GameController.java
+++ b/src/main/java/eric/Roullette/controller/GameController.java
@@ -1,22 +1,36 @@
package eric.Roullette.controller;
import com.fasterxml.jackson.core.type.TypeReference;
+ import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+ import com.fasterxml.jackson.databind.node.ObjectNode;
import io.javalin.Javalin;
import io.javalin.http.Context;
import eric.Roullette.service.GameService;
import eric.Roullette.service.SpotifyAuthService;
import eric.Roullette.websocket.GameWebSocketHandler;
-
+ import okhttp3.OkHttpClient;
+ import okhttp3.Request;
+ import okhttp3.RequestBody;
+ import okhttp3.Response;
+ import okhttp3.MediaType;
+ import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+ import com.fasterxml.jackson.databind.node.ObjectNode;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ import java.awt.*;
+ import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;
import java.util.concurrent.ThreadLocalRandom;
+ import java.util.concurrent.TimeUnit;
- public class GameController {
+public class GameController {
private final GameService gameService;
private final SpotifyAuthService authService;
private final GameWebSocketHandler webSocketHandler;
+ private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(GameController.class);
public GameController(Javalin app, GameService gs, SpotifyAuthService sas, GameWebSocketHandler wsHandler) {
this.gameService = gs;
@@ -27,6 +41,7 @@ package eric.Roullette.controller;
app.get("/api/game/{gameId}/players", this::getPlayers);
app.post("/api/game/{gameId}/start-round", this::startRound);
app.post("/api/game/{gameId}/guess", this::guess);
+ app.get("/api/spotify/devices", this::getDevices);
}
private void createGame(Context ctx) {
@@ -94,4 +109,18 @@ package eric.Roullette.controller;
"scores", game.scores()
));
}
+ // Backend: Devices abrufen
+ private void getDevices(Context ctx) {
+ String username = ctx.queryParam("username");
+ if (username == null) {
+ ctx.status(400).result("username fehlt");
+ return;
+ }
+ List