diff --git a/app/common/http_client.py b/app/common/http_client.py new file mode 100644 index 0000000..138f3f6 --- /dev/null +++ b/app/common/http_client.py @@ -0,0 +1,60 @@ +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) diff --git a/deployments/docker-compose.yml b/deployments/docker-compose.yml index 1502397..f7b1f89 100644 --- a/deployments/docker-compose.yml +++ b/deployments/docker-compose.yml @@ -36,6 +36,13 @@ services: depends_on: db: condition: service_healthy + networks: + - default + - saas_network volumes: postgres_data: + +networks: + saas_network: + external: true