@@ -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