def __init__(self, ws_provider, ipfs_url, ipfs_port, service_repository, organiztion_repository): self._blockchain_util = blockchain_util.BlockChainUtil( "WS_PROVIDER", ws_provider) self._service_repository = service_repository self._organiztion_repository = organiztion_repository self._ipfs_util = ipfs_util.IPFSUtil(ipfs_url, ipfs_port)
def publish_to_ipfs(self): self.publish_assets() ipfs_utils = ipfs_util.IPFSUtil(IPFS_URL['url'], IPFS_URL['port']) metadata = self.to_metadata() filename = f"{METADATA_FILE_PATH}/{self.__uuid}_org_metadata.json" json_to_file(metadata, filename) ipfs_hash = ipfs_utils.write_file_in_ipfs(filename, wrap_with_directory=False) self.__metadata_ipfs_uri = f"ipfs://{ipfs_hash}"
def publish_assets(self): ipfs_utils = ipfs_util.IPFSUtil(IPFS_URL['url'], IPFS_URL['port']) for asset_type in self.__assets: if "url" in self.__assets[asset_type]: url = self.__assets[asset_type]["url"] filename = urlparse(url).path.split("/")[-1] response = requests.get(url) filepath = f"{ASSET_DIR}/{filename}" with open(filepath, 'wb') as asset_file: asset_file.write(response.content) asset_ipfs_hash = ipfs_utils.write_file_in_ipfs(filepath) self.__assets[asset_type]["ipfs_hash"] = f"ipfs://{asset_ipfs_hash}"