feat(api): Enhance event mappers to include GameLobby in JSON serialization

This commit is contained in:
2025-11-24 14:31:17 +01:00
parent 5136d14522
commit 3262ccfc06
6 changed files with 26 additions and 14 deletions

View File

@@ -1,6 +1,7 @@
package util
import de.knockoutwhist.utils.events.SimpleEvent
import logic.game.GameLobby
import play.api.libs.json.{JsValue, Json}
import tools.jackson.databind.json.JsonMapper
import tools.jackson.module.scala.ScalaModule
@@ -24,10 +25,15 @@ object WebsocketEventMapper {
// Register all custom mappers here
registerCustomMapper(ReceivedHandEventMapper)
def toJson(obj: SimpleEvent): JsValue = {
val data = if (customMappers.contains(obj.id)) {
return customMappers(obj.id).toJson(obj)
}else Json.parse(mapper.writeValueAsString(obj))
def toJson(obj: SimpleEvent, gameLobby: GameLobby): JsValue = {
val data: Option[JsValue] = if (customMappers.contains(obj.id)) {
Some(customMappers(obj.id).toJson(obj))
}else {
None
}
if (data.isEmpty) {
return Json.obj()
}
Json.obj(
"id" -> ("request-" + java.util.UUID.randomUUID().toString),
"event" -> obj.id,