refactor requests related dto with pydantic
This commit is contained in:
5
app.py
5
app.py
@ -1,7 +1,6 @@
|
||||
from dotenv import load_dotenv
|
||||
from flask import Flask
|
||||
|
||||
from dto.requests import GameStartRequest
|
||||
from dto.requests import GameStartRequestDTO
|
||||
from services.julius_baer_api_client import JuliusBaerApiClient
|
||||
|
||||
app = Flask(__name__)
|
||||
@ -14,7 +13,7 @@ def hello_world(): # put application's code here
|
||||
|
||||
if __name__ == '__main__':
|
||||
jb_client = JuliusBaerApiClient()
|
||||
game_start_request = GameStartRequest("Welch")
|
||||
game_start_request = GameStartRequestDTO(player_name="Welch")
|
||||
res = jb_client.start_game(game_start_request)
|
||||
print(res)
|
||||
|
||||
|
@ -1,16 +1,14 @@
|
||||
from dataclasses import dataclass
|
||||
from pydantic import BaseModel
|
||||
from typing import Literal
|
||||
from uuid import UUID
|
||||
|
||||
|
||||
@dataclass
|
||||
class GameStartRequest:
|
||||
class GameStartRequestDTO(BaseModel):
|
||||
"""Request model for starting a new game."""
|
||||
player_name: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class GameDecisionRequest:
|
||||
class GameDecisionRequestDTO(BaseModel):
|
||||
"""Request model for making a game decision."""
|
||||
decision: Literal["Accept", "Reject"]
|
||||
session_id: UUID
|
||||
|
@ -1,9 +1,7 @@
|
||||
from typing import Dict, Any
|
||||
|
||||
import requests
|
||||
|
||||
import config
|
||||
from dto.requests import GameStartRequest, GameDecisionRequest
|
||||
from typing import Dict, Any
|
||||
from dto.requests import GameStartRequestDTO, GameDecisionRequestDTO
|
||||
|
||||
|
||||
class JuliusBaerApiClient:
|
||||
@ -18,7 +16,7 @@ class JuliusBaerApiClient:
|
||||
self.api_key = config.API_KEY
|
||||
self.api_team = config.API_TEAM
|
||||
|
||||
def start_game(self, game_start_request: GameStartRequest) -> Dict[str, Any]:
|
||||
def start_game(self, game_start_request: GameStartRequestDTO) -> Dict[str, Any]:
|
||||
"""
|
||||
Start a new game session.
|
||||
|
||||
@ -47,7 +45,7 @@ class JuliusBaerApiClient:
|
||||
|
||||
return data
|
||||
|
||||
def make_decision(self, game_decision_request: GameDecisionRequest) -> Dict[str, Any]:
|
||||
def make_decision(self, game_decision_request: GameDecisionRequestDTO) -> Dict[str, Any]:
|
||||
"""
|
||||
Make a game decision (Accept or Reject).
|
||||
|
||||
|
Reference in New Issue
Block a user