edc-web-ui 0.2.0

A Rust Web interface with patternfly-yew client for EDC
Documentation
use super::{ContractNegotiationKind, ContractNegotiationState};
use edc_connector_client::types::contract_negotiation::ContractNegotiation;

#[derive(Clone, Debug, PartialEq)]
pub struct ContractNegotiationItem {
  pub id: String,
  pub state: String,
  pub contract_agreement_id: String,
  pub counter_party_id: String,
  pub counter_party_address: String,
  pub protocol: String,
  pub kind: String,
}

impl From<ContractNegotiation> for ContractNegotiationItem {
  fn from(contract_negotiation: ContractNegotiation) -> Self {
    let id = contract_negotiation.id().to_string();
    let state = ContractNegotiationState::from(contract_negotiation.state()).to_string();
    let contract_agreement_id = contract_negotiation
      .contract_agreement_id()
      .map(|contract_agreement_id| contract_agreement_id.to_string())
      .unwrap_or_default();
    let counter_party_id = contract_negotiation.counter_party_id().to_string();
    let counter_party_address = contract_negotiation.counter_party_address().to_string();
    let protocol = contract_negotiation.protocol().to_string();
    let kind = ContractNegotiationKind::from(contract_negotiation.kind()).to_string();

    Self {
      id,
      state,
      contract_agreement_id,
      counter_party_id,
      counter_party_address,
      protocol,
      kind,
    }
  }
}