feat: selecao individual de leads antes de salvar, dark mode global e extracao 100% real do Google Maps
This commit is contained in:
+26
-4
@@ -50,8 +50,11 @@ class APIClient:
|
||||
except Exception as e:
|
||||
return False, f"Erro ao conectar com API: {str(e)}"
|
||||
|
||||
def search_maps(self, cep: str, ramo: str, max_results: int = 15) -> tuple[bool, dict]:
|
||||
url = f"{self.base_url}/api/v1/leads/search-maps"
|
||||
def scrape_preview(self, cep: str, ramo: str, max_results: int = 15) -> tuple[bool, dict]:
|
||||
"""
|
||||
Solicita a varredura no Maps sem salvar no banco de dados ainda.
|
||||
"""
|
||||
url = f"{self.base_url}/api/v1/leads/scrape-preview"
|
||||
try:
|
||||
with httpx.Client(timeout=60.0) as client:
|
||||
res = client.post(url, headers=self._get_headers(), json={
|
||||
@@ -62,9 +65,28 @@ class APIClient:
|
||||
data = res.json()
|
||||
if res.status_code == 200:
|
||||
return True, data
|
||||
return False, {'error': data.get('error', 'Erro durante varredura no Google Maps.')}
|
||||
return False, {'error': data.get('error', 'Erro durante prospecção no Google Maps.')}
|
||||
except Exception as e:
|
||||
return False, {'error': f"Erro ao processar busca: {str(e)}"}
|
||||
return False, {'error': f"Erro ao conectar com API: {str(e)}"}
|
||||
|
||||
def import_selected_leads(self, cep: str, ramo: str, selected_leads: list) -> tuple[bool, str]:
|
||||
"""
|
||||
Envia a lista de leads selecionados para serem salvos no banco.
|
||||
"""
|
||||
url = f"{self.base_url}/api/v1/leads/import-selected"
|
||||
try:
|
||||
with httpx.Client(timeout=30.0) as client:
|
||||
res = client.post(url, headers=self._get_headers(), json={
|
||||
'cep': cep,
|
||||
'ramo': ramo,
|
||||
'selected_leads': selected_leads
|
||||
})
|
||||
data = res.json()
|
||||
if res.status_code == 200:
|
||||
return True, data.get('message', 'Leads importados com sucesso!')
|
||||
return False, data.get('error', 'Falha ao importar leads.')
|
||||
except Exception as e:
|
||||
return False, f"Erro ao conectar com API: {str(e)}"
|
||||
|
||||
def get_leads(self, status_funil: str = None, cidade: str = None, ramo: str = None, search: str = None) -> list:
|
||||
url = f"{self.base_url}/api/v1/leads"
|
||||
|
||||
Reference in New Issue
Block a user