userlib/remote/
organization_remote.rsuse common::remote::{get, services};
use hyper::HeaderMap;
use uuid::Uuid;
use cached::proc_macro::cached;
use crate::dto::organization_response::OrganizationResponse;
pub fn find_parent_orgs(headers: HeaderMap) -> Result<Vec<OrganizationResponse>, String> {
get::<Vec<OrganizationResponse>>(
services::USER_API,
String::from("/organization/getParentOrgList"),
headers,
)
}
#[cached(
time=5,
key = "String",
convert = r#"{ format!("{}", _org_id) }"#
)]
fn find_parent_orgs_ids_cache(
_org_id : Uuid,
headers: HeaderMap
)->Result<Vec<Uuid>, String> {
get::<Vec<Uuid>>(
services::USER_API,
String::from("/organization/getParentOrgIds"),
headers,
)
}
pub fn find_parent_orgs_ids(headers: HeaderMap) -> Result<Vec<Uuid>, String> {
let header_value = headers.get("Authorization");
let jwt_token = common::auth::decode_token_from_header(header_value)
.map_err(|e| {
format!("{:?}", e)
})?;
find_parent_orgs_ids_cache(jwt_token.org_id,headers.clone())
}
pub fn find_parent_ids_by_id(id: Uuid) -> Result<Vec<Uuid>, String> {
get(services::USER_API, format!("/organization/getParentOrgIdsById/{}", id), HeaderMap::new())
}
pub fn find_child_ids_by_id(id: Uuid, headers: HeaderMap) -> Result<Vec<Uuid>, String> {
get(services::USER_API, format!("/organization/getChildIdsForParentOrg/{}", id), headers)
}
pub fn find_by_id(id: Uuid, headers: HeaderMap) -> Result<OrganizationResponse, String> {
get::<OrganizationResponse>(services::USER_API, format!("/organization/{}", id), headers)
}