Se agregaron catch de errores
This commit is contained in:
@@ -95,7 +95,6 @@ async def consume_ws_get_cove(**kwargs):
|
||||
# Enviar documento
|
||||
_file_name = f"vu_COVE_{pedimento_app}_{cove}.xml"
|
||||
try:
|
||||
|
||||
document_response = await coves_rest_controller.post_document(
|
||||
soap_response=soap_response,
|
||||
organizacion=kwargs.get('pedimento').get('organizacion'),
|
||||
@@ -162,19 +161,33 @@ async def consume_ws_get_acuse_cove(**kwargs):
|
||||
if response.status_code != 200:
|
||||
raise Exception(f"Error en la solicitud SOAP: {response.status}")
|
||||
|
||||
if soap_error(response):
|
||||
rest_response = await coves_rest_controller.post_document(
|
||||
soap_response=response,
|
||||
organizacion=kwargs.get('pedimento').get('organizacion'),
|
||||
pedimento=kwargs.get('pedimento').get('id'),
|
||||
file_name=f"vu_AC_COVE_{kwargs.get('pedimento', {}).get('pedimento_app', 'N/A')}_{kwargs['cove'].get('cove', 'N/A')}_ERROR.xml",
|
||||
document_type=10,
|
||||
)
|
||||
raise Exception("Error detectado en la respuesta SOAP.")
|
||||
if (response) and (not soap_error(response)):
|
||||
logger.debug(f"Respuesta SOAP recibida, extrayendo acuse...")
|
||||
acuse_base64 = _extract_acuse_data(response.text)
|
||||
|
||||
if acuse_base64 is None:
|
||||
logger.error("No se encontró elemento acuseDocumento en la respuesta")
|
||||
logger.debug(f"Contenido de respuesta (primeros 1000 chars): {response.text[:1000]}")
|
||||
logger.debug(f"Contenido de respuesta (primeros 1000 chars): {response.text}")
|
||||
else:
|
||||
logger.error("Error en respuesta SOAP o soap_error detectado")
|
||||
logger.debug(f"Contenido de respuesta con error: {response.text[:500] if response else 'No response'}")
|
||||
logger.debug(f"Contenido de respuesta con error: {response.text if response else 'No response'}")
|
||||
|
||||
if acuse_base64 is None:
|
||||
raise Exception("No se pudo extraer el acuse del documento de la respuesta SOAP.")
|
||||
# Log de la respuesta SOAP para debugging
|
||||
logger.error(f"Contenido de respuesta SOAP: {response.text}")
|
||||
raise HTTPException(
|
||||
status_code=500,
|
||||
detail="No se pudo extraer el acuse del documento de la respuesta SOAP. Verifique el log para más detalles."
|
||||
)
|
||||
|
||||
|
||||
pdf_bytes = _decode_acuse_base64_content(acuse_base64)
|
||||
@@ -330,7 +343,9 @@ def _extract_acuse_data(soap_response_text: str) -> str:
|
||||
# Log de todos los elementos para debugging
|
||||
logger.error("No se encontró elemento acuseDocumento. Elementos disponibles:")
|
||||
for elem in root.iter():
|
||||
logger.debug(f" - {elem.tag}: {elem.text[:50] if elem.text else 'Sin contenido'}...")
|
||||
logger.error(f" - {elem.tag}: {elem.text[:50] if elem.text else 'Sin contenido'}...")
|
||||
if 'acuse' in elem.tag.lower():
|
||||
logger.error(f"Elemento similar encontrado: {elem.tag}")
|
||||
return None
|
||||
|
||||
if acuse_elemento is not None and acuse_elemento.text:
|
||||
|
||||
Reference in New Issue
Block a user