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