edc_web_ui/models/
asset_item.rs1use 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}