import json import os from datamite.models.dataProductResourcesBody import DataProductResourcesModel from fastapi import HTTPException from app.utils.create_asset import invoke_create_asset from app.utils.create_policy import invoke_create_policy, checkPolicyId from app.utils.create_contract_definition import invoke_create_contract_definition def load_asset_edc(body:DataProductResourcesModel, dataResouceAPi_URL:str): header_authorization = os.getenv("HEADER_AUTHORIZATION") # asset_id = asset_id.replace(os.getenv("DOMAIN_PART"),"") # Create asset for dataresource in body.dataResources: formatType = body.dataAccount[0].formatType if dataresource.dataResourceInfo is not None: create_asset_response = invoke_create_asset(dataresource.dataResourceInfo.name, body.dataProductName, formatType, dataresource.dataResourceInfo.description, dataResouceAPi_URL, header_authorization) if not create_asset_response.ok: raise HTTPException(status_code=400, detail=json.loads(create_asset_response.text)) # Create policy policy_id = os.getenv("POLICY_ID") contract_id = os.getenv("CONTRACT_ID") policyExist = checkPolicyId(policy_id, header_authorization) if not policyExist: create_policy_response = invoke_create_policy(policy_id, header_authorization) print (json.loads(create_policy_response.text)) create_contract_response = invoke_create_contract_definition(contract_id, policy_id, dataresource.dataResourceInfo.name, header_authorization) print(json.loads(create_contract_response.text)) print (f'Asset {body.dataProductName} created') return f'Asset {body.dataProductName} created'