feat: BAC-30 Implement Jackson Mapping via DTOs
This commit is contained in:
29
knockoutwhistweb/app/dto/TrumpInfoDTO.scala
Normal file
29
knockoutwhistweb/app/dto/TrumpInfoDTO.scala
Normal file
@@ -0,0 +1,29 @@
|
||||
package dto
|
||||
|
||||
import dto.subDTO.{HandDTO, PlayerDTO}
|
||||
import logic.game.GameLobby
|
||||
import model.users.User
|
||||
|
||||
import scala.util.Try
|
||||
|
||||
case class TrumpInfoDTO(
|
||||
chooser: Option[PlayerDTO],
|
||||
self: Option[PlayerDTO],
|
||||
selfHand: Option[HandDTO],
|
||||
)
|
||||
|
||||
object TrumpInfoDTO {
|
||||
|
||||
def apply(lobby: GameLobby, user: User): TrumpInfoDTO = {
|
||||
val selfPlayer = Try {
|
||||
Some(lobby.getPlayerByUser(user))
|
||||
}.getOrElse(None)
|
||||
|
||||
TrumpInfoDTO(
|
||||
chooser = lobby.logic.getTrumpPlayer.map(PlayerDTO(_)),
|
||||
self = selfPlayer.map(PlayerDTO(_)),
|
||||
selfHand = selfPlayer.flatMap(_.currentHand()).map(HandDTO(_))
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user