WS DTO assign rework

This commit is contained in:
Eden Kirin
2023-03-25 15:27:15 +01:00
parent 9aabcf61f4
commit 0f0fe68890
11 changed files with 79 additions and 30 deletions

View File

@ -18,12 +18,14 @@ from hopper.api.dto import (
from hopper.engine import GameEngine
from hopper.enums import Direction, PlayerMoveResult
from hopper.errors import Collision, PositionOutOfBounds
from hopper.ws_client import send_game_state
router = APIRouter()
@router.get("/ping", response_model=PingResponse)
async def ping() -> PingResponse:
await send_game_state()
return PingResponse(
message="Pong!",
)
@ -34,9 +36,9 @@ async def get_game_info(
engine: GameEngine = Depends(get_game_engine),
) -> GameInfoDto:
return GameInfoDto(
board=BoardDto.from_model(engine.board),
board=engine.board,
destination=DestinationDto(
position=PositionDto.from_model(engine.board.destination.position)
position=engine.board.destination.position,
),
)
@ -49,10 +51,10 @@ async def start_game(
new_player = engine.start_game(player_name=body.player_name)
return StartGameResponseDto(
board=BoardDto.from_model(engine.board),
player=PlayerDto.from_model(new_player),
board=engine.board,
player=new_player,
destination=DestinationDto(
position=PositionDto.from_model(engine.board.destination.position)
position=engine.board.destination.position,
),
)
@ -76,7 +78,7 @@ async def get_player_info(
status_code=status.HTTP_404_NOT_FOUND,
detail="Player kicked out due to inactivity",
)
return PlayerInfoResponseDto(player=PlayerDto.from_model(player))
return PlayerInfoResponseDto(player=player)
@router.post(
@ -129,4 +131,4 @@ async def move_player(
if move_result == PlayerMoveResult.DESTINATION_REACHED:
response.status_code = status.HTTP_200_OK
return MovePlayerResponseDto(player=PlayerDto.from_model(player))
return MovePlayerResponseDto(player=player)