Newer
Older
# Añadir el directorio del SDK al PYTHONPATH usando una ruta relativa
script_dir = os.path.dirname(os.path.abspath(__file__)) # Directorio actual del script
sdk_path = os.path.join(script_dir, '..', '..', 'sdk') # Subir dos niveles y apuntar a 'sdk'
from sdk import CAPIFProviderConnector
# capif_sdk_config_path = "/Users/dgs/Downloads/capif_sdk/invoker/config.json"
capif_sdk_config_path = "./capif-sdk-config-sample.json"
try:
# Inicialización del conector
capif_connector = CAPIFProviderConnector(config_file=capif_sdk_config_path)
capif_connector.onboard_provider()
print("PROVIDER ONBOARDING COMPLETED")
# Obtención de los AEFs ids y APFs ids para publicar una API
with open(capif_sdk_config_path, 'r') as file:
config = json.load(file)
provider_folder = config.get('provider_folder')
username_folder = config.get('capif_username')
if not provider_folder:
raise ValueError("El valor 'provider_folder' no está definido en el archivo de configuración.")
detailspath = os.path.join(provider_folder,username_folder, "capif_provider_details.json")
# Comprobación de la existencia del archivo de detalles
if not os.path.exists(detailspath):
raise FileNotFoundError(f"No se encontró el archivo {detailspath}")
with open(detailspath, 'r') as file:
details = json.load(file)
APF = details.get('APF-1_api_prov_func_id')
AEF1 = details.get('AEF-1_api_prov_func_id')
AEF2 = details.get('AEF-2_api_prov_func_id')
if not APF or not AEF1 or not AEF2:
raise ValueError("No se encontraron todos los valores necesarios en 'Capif_provider_details.json'")
# Actualización del archivo de configuración
config['publish_req']['publisher_apf_id'] = APF
config['publish_req']['publisher_aefs_ids'] = [AEF1, AEF2]
with open(capif_sdk_config_path, 'w') as file:
json.dump(config, file, indent=4) # Guarda el JSON con formato
print("Archivo de configuración actualizado correctamente.")
# Volver a actualizar el constructor con los parametros nuevos de configuración
capif_connector = CAPIFProviderConnector(config_file=capif_sdk_config_path)
capif_connector.publish_services()
except FileNotFoundError as e:
print(f"Error: {e}")
except json.JSONDecodeError as e:
print(f"Error al leer el archivo JSON: {e}")
except Exception as e:
print(f"Error inesperado: {e}")