Skip to main content

edc_web_ui/models/
asset_item.rs

1use edc_connector_client::types::asset::Asset;
2
3#[derive(Clone, Debug, PartialEq)]
4pub struct AssetItem {
5  pub id: String,
6  pub name: String,
7  pub base_url: String,
8  pub proxy_path: bool,
9  pub proxy_query_params: bool,
10  pub proxy_method: bool,
11  pub proxy_body: bool,
12}
13
14impl From<Asset> for AssetItem {
15  fn from(asset: Asset) -> Self {
16    let id = asset.id().to_string();
17    let name = get_property(&asset, "name");
18    let base_url = get_property(&asset, "baseUrl");
19    let proxy_path = get_boolean_property(&asset, "proxyPath");
20    let proxy_query_params = get_boolean_property(&asset, "proxyQueryParams");
21    let proxy_method = get_boolean_property(&asset, "proxyMethod");
22    let proxy_body = get_boolean_property(&asset, "proxyBody");
23
24    AssetItem {
25      id,
26      name,
27      base_url,
28      proxy_path,
29      proxy_query_params,
30      proxy_method,
31      proxy_body,
32    }
33  }
34}
35
36fn get_property(asset: &Asset, name: &str) -> String {
37  asset
38    .properties()
39    .get::<String>(name)
40    .unwrap_or_default()
41    .unwrap_or_default()
42}
43
44fn get_boolean_property(asset: &Asset, name: &str) -> bool {
45  asset
46    .properties()
47    .get::<String>(name)
48    .unwrap_or_default()
49    .unwrap_or_default()
50    == "true"
51}