inventorylib/store/
building_store.rs

1use common::store::{get};
2use uuid::Uuid;
3use crate::dto::building_response::BuildingResponse;
4use crate::dto::building_with_floors_response::BuildingWithFloorsResponse;
5
6const DOMAIN: &str = "inventory";
7const CLUSTER: &str = "devapi.webschool.au";
8const SUFFIX: &str = "";
9
10pub struct BuildingStore {}
11
12impl BuildingStore  {
13    pub async fn build_ws_link(project: impl Into<String>, url: impl Into<String>) -> String {
14        format!("{}://{}{}{}{}", "https", project.into(), SUFFIX, CLUSTER, url.into())
15    }
16    pub async fn get_by_id(id: Uuid) -> Result<BuildingResponse, String> {
17        get::<BuildingResponse>(Self::build_ws_link(DOMAIN, format!("/building/{}", id)).await).await
18    }
19
20    pub async fn get_with_floors_by_id(building_id: Uuid) -> Result<BuildingWithFloorsResponse, String> {
21        get::<BuildingWithFloorsResponse>(Self::build_ws_link(DOMAIN, format!("/building/findWithFloors/{}", building_id)).await).await
22    }
23}