use crate::ham::Ham;
use crate::CommonOpts;
use anyhow::Result;
use holochain_types::dna::ActionHash;
use rave_engine::types::entries::{
global::service_network_definition::{ServiceNetworkDefinition, ServiceNetworkDefinitionExt},
ServiceNetworkExt,
};
pub async fn create_service_network_definition(
value: CommonOpts,
definition: String,
) -> Result<()> {
let agent = Ham::connect(value).await?;
let definition: ServiceNetworkDefinition = serde_json::from_str(&definition)?;
let result: ActionHash = agent
.zome_call(
"alliance",
"transactor",
"create_service_network_definition",
definition,
)
.await?;
println!("===================");
println!("ServiceNetwork Definition Created:");
println!("Action Hash: {:#?}", result);
println!("===================");
Ok(())
}
pub async fn update_service_network_definition(
value: CommonOpts,
definition: String,
) -> Result<()> {
let agent = Ham::connect(value).await?;
let definition: ServiceNetworkDefinitionExt = serde_json::from_str(&definition)?;
let result: ActionHash = agent
.zome_call(
"alliance",
"transactor",
"update_service_network_definition",
definition,
)
.await?;
println!("===================");
println!("ServiceNetwork Definition Updated:");
println!("Action Hash: {:#?}", result);
println!("===================");
Ok(())
}
pub async fn get_all_service_network(value: CommonOpts) -> Result<()> {
let agent = Ham::connect(value).await?;
let result: Vec<ServiceNetworkExt> = agent
.zome_call("alliance", "transactor", "get_all_service_network", ())
.await?;
println!("===================");
println!("All ServiceNetworks:");
println!("{:#?}", result);
println!("===================");
Ok(())
}