import json import requests from django.conf import settings class Request_API: """Dispatcher de llamadas HTTP internas hacia las APIs especializadas.""" def _post(self, base_url, url_path, data): url = base_url.rstrip('/') + '/' + url_path.lstrip('/') headers = {'Content-Type': 'application/json'} response = requests.post(url, data=json.dumps(data), headers=headers, timeout=30) return response.json(), response.status_code # --- api_backoffice --- def backoffice_get_parameterized(self, data): return self._post(settings.API_BACKOFFICE, 'api/general/get_parameterized/', data) def backoffice_set_parameterized(self, data): return self._post(settings.API_BACKOFFICE, 'api/general/set_parameterized/', data) def backoffice_get_BBDD(self, data): return self._post(settings.API_BACKOFFICE, 'api/general/get_BBDD/', data) def backoffice_set_BBDD(self, data): return self._post(settings.API_BACKOFFICE, 'api/general/set_BBDD/', data) # --- api_comunicaciones --- def comunicaciones_get_parameterized(self, data): return self._post(settings.API_COMUNICACIONES, 'api/general/get_parameterized/', data) def comunicaciones_set_parameterized(self, data): return self._post(settings.API_COMUNICACIONES, 'api/general/set_parameterized/', data) def comunicaciones_enviar_email(self, data): return self._post(settings.API_COMUNICACIONES, 'api/email/enviar/', data) def comunicaciones_enviar_sms(self, data): return self._post(settings.API_COMUNICACIONES, 'api/sms/enviar/', data) # --- api_documentacion --- def documentacion_get_parameterized(self, data): return self._post(settings.API_DOCUMENTACION, 'api/general/get_parameterized/', data) def documentacion_set_parameterized(self, data): return self._post(settings.API_DOCUMENTACION, 'api/general/set_parameterized/', data) def documentacion_generar_pdf(self, data): return self._post(settings.API_DOCUMENTACION, 'api/generation/pdf/', data) def documentacion_guardar(self, data): return self._post(settings.API_DOCUMENTACION, 'api/storage/guardar/', data)