import urllib.request import json import os BACKOFFICE_URL = os.getenv('BACKOFFICE_URL', 'http://django_app_backoffice:8000') COMUNICACIONES_URL = os.getenv('COMUNICACIONES_URL', 'http://django_app_comunicaciones:8000') DOCUMENTACION_URL = os.getenv('DOCUMENTACION_URL', 'http://django_app_documentacion:8000') def _post(url, payload): data = json.dumps(payload).encode('utf-8') req = urllib.request.Request( url, data=data, headers={'Content-Type': 'application/json'}, method='POST' ) with urllib.request.urlopen(req, timeout=10) as resp: return json.loads(resp.read()) # --- Backoffice --- def backoffice_obtener_usuario(params): return _post(f'{BACKOFFICE_URL}/api/usuarios/obtener/', params) def backoffice_crear_usuario(params): return _post(f'{BACKOFFICE_URL}/api/usuarios/guardar/', params) def backoffice_obtener_cliente(params): return _post(f'{BACKOFFICE_URL}/api/clientes/obtener/', params) def backoffice_crear_cliente(params): return _post(f'{BACKOFFICE_URL}/api/clientes/guardar/', params) def backoffice_obtener_contrato(params): return _post(f'{BACKOFFICE_URL}/api/contratos/obtener/', params) def backoffice_crear_contrato(params): return _post(f'{BACKOFFICE_URL}/api/contratos/guardar/', params) # --- Comunicaciones --- def comunicaciones_enviar_email(params): return _post(f'{COMUNICACIONES_URL}/api/email/enviar/', params) def comunicaciones_enviar_sms(params): return _post(f'{COMUNICACIONES_URL}/api/sms/enviar/', params) def comunicaciones_registrar_webhook(params): return _post(f'{COMUNICACIONES_URL}/api/webhooks/registrar/', params) # --- Documentacion --- def documentacion_generar_pdf(params): return _post(f'{DOCUMENTACION_URL}/api/generation/pdf/', params) def documentacion_obtener_template(params): return _post(f'{DOCUMENTACION_URL}/api/templates/obtener/', params) def documentacion_guardar_documento(params): return _post(f'{DOCUMENTACION_URL}/api/storage/guardar/', params)