Add bot_decision and bot_reason to next and new game

This commit is contained in:
dylan
2025-04-12 21:57:05 +02:00
parent 22636070d7
commit da926fb8cb
2 changed files with 27 additions and 6 deletions

17
app.py
View File

@ -5,7 +5,7 @@ from flask_cors import cross_origin
import config
from dto.requests import GameStartRequestDTO, GameDecisionRequestDTO
from dto.responses import GameStartResponseWithBotDecisionDTO
from dto.responses import GameStartResponseWithBotDecisionDTO, GameDecisionResponseWithBotDecisionDTO
from services.julius_baer_api_client import JuliusBaerApiClient
from services.player import Player
@ -28,7 +28,8 @@ def new_game():
client_id=res.client_id,
client_data=res.client_data,
score=res.score,
bot_decision=bot_decision
bot_decision=bot_decision,
bot_reason="" # TODO
)
return res_with_bot_decision.model_dump_json()
@ -46,7 +47,17 @@ def next_client():
make_decision_request = GameDecisionRequestDTO(decision=decision, client_id=client_id, session_id=session_id)
res = jb_client.send_decision(make_decision_request)
return res.model_dump_json()
res_with_bot_decision = GameDecisionResponseWithBotDecisionDTO(
status=res.status,
score=res.score,
client_id=res.client_id,
client_data=res.client_data,
bot_decision="Accept", # TODO
bot_reason="" # TODO
)
return res_with_bot_decision.model_dump_json()
if __name__ == '__main__':
app.run()

View File

@ -13,7 +13,7 @@ class GameStartResponseDTO(BaseModel):
score: int
class GameStartResponseWithBotDecisionDTO(BaseModel):
"""Response model for to send to frontend after a new game started."""
"""Response model to send to frontend after a new game started."""
message: str
session_id: UUID
player_id: str
@ -21,6 +21,7 @@ class GameStartResponseWithBotDecisionDTO(BaseModel):
client_data: Dict[str, Any]
score: int
bot_decision: Literal["Accept", "Reject"]
bot_reason: str
class GameDecisionResponseDTO(BaseModel):
@ -29,3 +30,12 @@ class GameDecisionResponseDTO(BaseModel):
score: int
client_id: Optional[UUID] = None
client_data: Optional[Dict[str, Any]] = None
class GameDecisionResponseWithBotDecisionDTO(BaseModel):
"""Response model to send to frontend after a game decision has been sent."""
status: str
score: int
client_id: Optional[UUID] = None
client_data: Optional[Dict[str, Any]] = None
bot_decision: Literal["Accept", "Reject"]
bot_reason: str