domino_cli 0.1.1

Client to interact with a domino application running on holochain
Documentation
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(())
}