diff --git a/build.sbt b/build.sbt index 35210c3..487601e 100644 --- a/build.sbt +++ b/build.sbt @@ -41,7 +41,7 @@ lazy val knockoutwhistweb = project.in(file("knockoutwhistweb")) libraryDependencies += "com.auth0" % "java-jwt" % "4.5.0", libraryDependencies += "com.github.ben-manes.caffeine" % "caffeine" % "3.2.3", libraryDependencies += "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.16.1", - //JsEngineKeys.engineType := JsEngineKeys.EngineType.Node + JsEngineKeys.engineType := JsEngineKeys.EngineType.Node ) lazy val root = (project in file(".")) diff --git a/knockoutwhistweb/app/model/sessions/UserSession.scala b/knockoutwhistweb/app/model/sessions/UserSession.scala index f66e405..0f40c69 100644 --- a/knockoutwhistweb/app/model/sessions/UserSession.scala +++ b/knockoutwhistweb/app/model/sessions/UserSession.scala @@ -39,7 +39,7 @@ class UserSession(val user: User, val host: Boolean, val gameLobby: GameLobby) e canInteract = None } - def handleWebResponse(eventType: String, data: JsObject): Unit = { + def handleWebResponse(eventType: String, data: JsObject, user: User, gameLobby: GameLobby): Unit = { lock.lock() Try { eventType match { @@ -48,19 +48,7 @@ class UserSession(val user: User, val host: Boolean, val gameLobby: GameLobby) e () case "Start Game" => println("INSIDE HANDLE WEB RESPONSE" + data) - val gameId: String = (data \ "gameId").get.toString - val cleanGameId: String = gameId.replaceAll("^[\"']|[\"']$", "") - val user: JsObject = (data \ "user").asOpt[JsObject].get - val gameLobby: GameLobby = PodManager.getGame(cleanGameId).get - val realUser: JsResult[User] = user.validate[User] - val uu: User = realUser match { - case JsSuccess(extractedUser, _) => - extractedUser - case e: JsError => - println("FAILED" + JsError.toJson(e).toString()) - throw new Exception("Failed to deserialize User object: " + JsError.toJson(e).toString()) - } - gameLobby.startGame(uu) + gameLobby.startGame(user) } } lock.unlock() diff --git a/knockoutwhistweb/app/model/sessions/UserWebsocketActor.scala b/knockoutwhistweb/app/model/sessions/UserWebsocketActor.scala index b2b59c7..6c612d6 100644 --- a/knockoutwhistweb/app/model/sessions/UserWebsocketActor.scala +++ b/knockoutwhistweb/app/model/sessions/UserWebsocketActor.scala @@ -74,7 +74,7 @@ class UserWebsocketActor( val event = eventOpt.get val data = (json \ "data").asOpt[JsObject].getOrElse(Json.obj()) val result = Try { - session.handleWebResponse(event, data) + session.handleWebResponse(event, data, session.user, session.gameLobby) } if (result.isSuccess) { transmitJsonToClient(Json.obj( diff --git a/knockoutwhistweb/app/model/users/User.scala b/knockoutwhistweb/app/model/users/User.scala index a07fd5b..d9063f6 100644 --- a/knockoutwhistweb/app/model/users/User.scala +++ b/knockoutwhistweb/app/model/users/User.scala @@ -18,7 +18,4 @@ case class User( private def withPasswordHash(newPasswordHash: String): User = { this.copy(passwordHash = newPasswordHash) } -} -object User { - implicit val userFormat: Format[User] = Json.format[User] } \ No newline at end of file diff --git a/knockoutwhistweb/public/javascripts/interact.js b/knockoutwhistweb/public/javascripts/interact.js index 7e8ace5..ae476ea 100644 --- a/knockoutwhistweb/public/javascripts/interact.js +++ b/knockoutwhistweb/public/javascripts/interact.js @@ -5,18 +5,8 @@ function handlePlayCard(card, dog) { function handleSkipDogLife(button) { // TODO needs implementation } -function startGame(gameId, userId, username, userpasswordhash, userinternalid) { - const userpayload = { - internalId: userinternalid, - id: userId, - name: username, - passwordHash: userpasswordhash - } - const payload = { - gameId: gameId, - user: userpayload - }; - sendEvent("Start Game", payload) +function startGame() { + sendEvent("Start Game") } function handleKickPlayer(playerId) { // TODO needs implementation