import requests import json import traceback import sys import sap_utilities from config_loader import CONFIG ################################################### def login(): session = requests.Session() sl_config = CONFIG.service_layer hana_config = CONFIG.hana body = { "CompanyDB": hana_config.company, "UserName": sl_config.username, "Password": sl_config.password } try: response = sap_utilities.post(session, "Login", body) if response: return session except Exception as e: print(f"❌ Error de conexión al SAP Service Layer (Login): {e}") tb = traceback.extract_tb(sys.exc_info()[2]) print(tb[-1].name) return None ################################################### def logout(session): try: response = sap_utilities.post(session, "Logout") if response: return True except Exception as e: print(f"❌ Error de desconexión del SAP Service Layer (Logout): {e}") tb = traceback.extract_tb(sys.exc_info()[2]) print(tb[-1].name) return False ################################################### def get_by_key(session, endpoint): if not session: print("❌ Error: No se pudo iniciar sesión en SAP Service Layer") return None recurso = endpoint response = sap_utilities.get(session, recurso) if response and response.status_code == 200: return response.json() print(f"❌ Error obteniendo datos de {recurso}") return None ################################################### def update_document(session, recurso, body): if not session: print("❌ Error: No se pudo iniciar sesión en SAP Service Layer") return None # print(f" 📤 [PATCH] Body enviado a {recurso}:") # print(json.dumps(body, indent=2, default=str)) response = sap_utilities.patch(session, recurso, body) if response and response.status_code == 204: return response status = response.status_code if response is not None else "Sin respuesta (None)" print(f"❌ Error actualizando documento en SAP Service Layer: HTTP {status}") return None ###################################################