fix(ui): Websocket
Fixed startGame to be correctly implemented
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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]
|
||||
}
|
||||
Reference in New Issue
Block a user