This commit is contained in:
Kenio 2025-12-08 20:11:23 -03:00
parent 8aab01cb61
commit d0d26dc4c8

View file

@ -136,31 +136,45 @@ class ShowDatabaseService:
if dados_json and dados_json.get("file"):
# 1. Carrega o JSON do campo 'file' (log do cliente)
dados_json = json.loads(dados_json["file"])
# --- 1. Extração de Estruturas e Metadata ---
standard_structure_data: Dict[str, Any] = dados_json.get("standard_structure_json", {})
print(standard_structure_data)
# O Repository retorna a estrutura padrão como uma STRING JSON.
standard_structure_json_string = dados_json.get("standard_structure_json")
standard_structure_data: Dict[str, Any] = {}
# **CORREÇÃO AQUI:** Tenta carregar a STRING JSON em um Dicionário.
if standard_structure_json_string:
try:
standard_structure_data = json.loads(standard_structure_json_string)
except json.JSONDecodeError:
# Se houver erro de parsing, mantém standard_structure_data como {}
pass
# REMOVIDA LINHA DE PRINT DE DEBUG (print(standard_structure_data))
database_data = dados_json.get("database", {})
client_structure: Dict[str, Any] = database_data.get("structure", {})
partition_info = database_data.get("partition", {})
# ... (continua com a extração dos metadados)
file_size_mb = database_data.get("file_size_mb", None)
db_accessible = database_data.get("db_accessible", None)
last_modified = database_data.get("last_modified", None)
# --- 2. Normalização e Comparação ---
# ... (o restante do código é mantido, usando standard_structure_data)
# Normaliza as chaves para UPPERCASE em ambas as estruturas
standard_structure_data = _normalize_keys_to_upper(standard_structure_data)
client_structure = _normalize_keys_to_upper(client_structure)
standard_structure_data_normalized = _normalize_keys_to_upper(standard_structure_data)
client_structure_normalized = _normalize_keys_to_upper(client_structure)
# Encontra elementos exclusivos do padrão (Padrão - Cliente)
inconsistencies_data = find_standard_only_elements(
standard_structure_data,
client_structure
standard_structure_data_normalized,
client_structure_normalized
)
# --- 3. Monta o JSON final ---
@ -176,8 +190,8 @@ class ShowDatabaseService:
"last_modified": last_modified,
# NOVO CAMPO: Retorna o que falta no cliente
"inconsistencies": inconsistencies_data,
"standard_structure_data": standard_structure_data,
# "client_structure": client_structure
# Agora, standard_structure_data contém a ESTRUTURA PADRÃO parseada
"standard_structure_data": standard_structure_data_normalized,
}
}