edc-web-components 0.8.1

A Rust Web Components with patternfly-yew client for EDC
Documentation
use edc_connector_client::types::contract_agreement::ContractAgreement;
use edc_connector_client::types::policy::Policy;

#[derive(Clone, Debug, PartialEq)]
pub struct ContractAgreementItem {
  pub id: String,
  pub signing_date: String,
  pub consumer_id: String,
  pub provider_id: String,
  pub asset_id: String,
  pub policy: Policy,
  pub policy_id: String,
}

impl From<ContractAgreement> for ContractAgreementItem {
  fn from(contract_agreement: ContractAgreement) -> Self {
    let id = contract_agreement.id().to_string();
    let signing_date =
      chrono::DateTime::from_timestamp(contract_agreement.contract_signing_date(), 0)
        .unwrap_or_default()
        .to_string();

    let consumer_id = contract_agreement.consumer_id().to_string();
    let provider_id = contract_agreement.provider_id().to_string();
    let asset_id = contract_agreement.asset_id().to_string();
    let policy_id = contract_agreement
      .policy()
      .id()
      .map(|id| id.to_string())
      .unwrap_or_default();

    Self {
      id,
      signing_date,
      consumer_id,
      provider_id,
      asset_id,
      policy: contract_agreement.policy().clone(),
      policy_id,
    }
  }
}