diff --git a/app.py b/app.py index 5b4f17d..949b24b 100644 --- a/app.py +++ b/app.py @@ -5,6 +5,7 @@ from flask_cors import cross_origin import config from dto.requests import GameStartRequestDTO, GameDecisionRequestDTO +from dto.responses import GameStartResponseWithBotDecisionDTO from services.julius_baer_api_client import JuliusBaerApiClient app = Flask(__name__) @@ -18,7 +19,17 @@ def new_game(): game_start_request = GameStartRequestDTO(player_name=config.API_TEAM) res = jb_client.start_game(game_start_request) - return res.model_dump_json() + res_with_bot_decision = GameStartResponseWithBotDecisionDTO( + message=res.message, + session_id=res.session_id, + player_id=res.player_id, + client_id=res.client_id, + client_data=res.client_data, + score=res.score, + bot_decision="Accept" # TODO: Get decision from bot + ) + + return res_with_bot_decision.model_dump_json() @app.route('/next', methods=['POST']) diff --git a/dto/responses.py b/dto/responses.py index fd5509b..4ad3223 100644 --- a/dto/responses.py +++ b/dto/responses.py @@ -1,5 +1,5 @@ from pydantic import BaseModel -from typing import Dict, Optional, Any +from typing import Dict, Optional, Any, Literal from uuid import UUID @@ -12,6 +12,16 @@ class GameStartResponseDTO(BaseModel): client_data: Dict[str, Any] score: int +class GameStartResponseWithBotDecisionDTO(BaseModel): + """Response model for to send to frontend after a new game started.""" + message: str + session_id: UUID + player_id: str + client_id: UUID + client_data: Dict[str, Any] + score: int + bot_decision: Literal["Accept", "Reject"] + class GameDecisionResponseDTO(BaseModel): """Response model for a game decision result."""