edc_web_components/models/
policy_definition.rs1use crate::models::PolicyKind;
2use edc_connector_client::types::policy::PolicyDefinition;
3
4#[derive(Clone, Debug, PartialEq)]
5pub struct PolicyDefinitionItem {
6 pub id: String,
7 pub name: String,
8 pub kind: String,
9 pub assignee: Option<String>,
10 pub assigner: Option<String>,
11}
12
13impl From<PolicyDefinition> for PolicyDefinitionItem {
14 fn from(policy_definition: PolicyDefinition) -> Self {
15 PolicyDefinitionItem {
16 id: policy_definition.id().to_string(),
17 name: policy_definition
18 .private_property("name")
19 .map(|name| name.unwrap_or_default())
20 .unwrap_or_default(),
21 kind: PolicyKind::from(policy_definition.policy().kind()).to_string(),
22 assignee: policy_definition
23 .policy()
24 .assignee()
25 .map(|assignee| assignee.to_string()),
26 assigner: policy_definition
27 .policy()
28 .assigner()
29 .map(|assigner| assigner.to_string()),
30 }
31 }
32}