logger = logging.getLogger("uvicorn.error")

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

    #get policy metadata
    print(body.dataProductPolicy)
    policyData=body.dataProductPolicy
    policyData=policyData.replace("'", "\"")
    print(policyData)

    #get the policyId
    policy_json = json.loads(policyData)
    policy_id=policy_json["@id"]

    print(policy_id)
    # check new data type

    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_uuid = uuid.uuid4()



            contract_id = "contract-"+policy_id+"-"+str(contract_uuid) #os.getenv("CONTRACT_ID")
            policyExist = checkPolicyId(policy_id, header_authorization)
            if not policyExist:
                #create_policy_response = invoke_create_policy(policy_id, header_authorization)
                create_policy_response = invoke_create_policy(policyData, 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')