Skip to content

Commit eaebc02

Browse files
Refactor FetchOrderTechFloripa class: Update fetch_orders method to accept product_id as a string instead of an integer.
1 parent bdd3d81 commit eaebc02

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

src/application/fetch_order_tech_floripa.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class FetchOrderTechFloripa:
1111
Classe responsável por buscar ordens da API Tech Floripa.
1212
Implementa retry automático e configurações robustas de timeout.
1313
"""
14-
14+
1515
def __init__(self):
1616
self.url = config.URL_SERVICE_TECH
1717
# Configurações de timeout mais robustas para APIs lentas
@@ -21,7 +21,7 @@ def __init__(self):
2121
write=15.0, # Timeout para enviar dados (aumentado)
2222
pool=60.0 # Timeout para pool de conexões (aumentado)
2323
)
24-
24+
2525
# Headers para simular navegador real e melhorar compatibilidade
2626
self.headers = {
2727
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
@@ -40,23 +40,23 @@ def __init__(self):
4040
backoff=2,
4141
logger=logger
4242
)
43-
def fetch_orders(self, product_id: int) -> List[Dict[str, Any]]:
43+
def fetch_orders(self, product_id: str) -> List[Dict[str, Any]]:
4444
"""
4545
Busca ordens para um product_id específico.
46-
46+
4747
Args:
4848
product_id: ID do produto para buscar ordens
49-
49+
5050
Returns:
5151
List[Dict[str, Any]]: Lista de ordens encontradas
52-
52+
5353
Raises:
5454
Exception: Se falhar após todas as tentativas de retry
5555
"""
5656
url = f"{self.url}/orders?product_id={product_id}"
5757
logger.info(f"Buscando ordens da URL: {url}")
5858
logger.info(f"Configurações de timeout: connect={self.timeout_config.connect}s, read={self.timeout_config.read}s")
59-
59+
6060
try:
6161
# Configurações mais robustas para o cliente HTTP
6262
with httpx.Client(
@@ -68,18 +68,18 @@ def fetch_orders(self, product_id: int) -> List[Dict[str, Any]]:
6868
logger.info("Iniciando requisição HTTP...")
6969
response = client.get(url)
7070
logger.info(f"Resposta recebida em {response.elapsed.total_seconds():.2f}s")
71-
71+
7272
# Verifica se a resposta foi bem-sucedida
7373
response.raise_for_status()
74-
74+
7575
logger.info(f"Requisição bem-sucedida! Status: {response.status_code}")
76-
76+
7777
# Processa e retorna os dados
7878
data = response.json()
7979
logger.info(f"Recebidas {len(data) if isinstance(data, list) else 1} ordem(s)")
80-
80+
8181
return data
82-
82+
8383
except httpx.TimeoutException as e:
8484
logger.error(f"Timeout na conexão: {e}")
8585
raise Exception(f"Timeout ao conectar com a API: {e}")
@@ -91,4 +91,4 @@ def fetch_orders(self, product_id: int) -> List[Dict[str, Any]]:
9191
raise Exception(f"Erro de rede: {e}")
9292
except Exception as e:
9393
logger.error(f"Erro inesperado ao buscar ordens: {e}")
94-
raise
94+
raise

0 commit comments

Comments
 (0)