userlib/remote/
organization_remote.rs1use cached::proc_macro::cached;
2use common::remote::{get, services};
3use hyper::HeaderMap;
4use uuid::Uuid;
5
6use crate::dto::organization_response::OrganizationResponse;
7
8pub fn find_parent_orgs(headers: HeaderMap) -> Result<Vec<OrganizationResponse>, String> {
9 get::<Vec<OrganizationResponse>>(
10 services::USER_API,
11 String::from("/organization/getParentOrgList"),
12 headers,
13 )
14}
15#[cached(
16time=5,
17key = "String",
18convert = r#"{ format!("{}", _org_id) }"#
19)]
20fn find_parent_orgs_ids_cache(
21 _org_id : Uuid,
22 headers: HeaderMap
23)->Result<Vec<Uuid>, String> {
24 get::<Vec<Uuid>>(
25 services::USER_API,
26 String::from("/organization/getParentOrgIds"),
27 headers,
28 )
29}
30pub fn find_parent_orgs_ids(headers: HeaderMap) -> Result<Vec<Uuid>, String> {
31 let header_value = headers.get("Authorization");
32 let jwt_token = common::auth::decode_token_from_header(header_value)
33 .map_err(|e| {
34 format!("{:?}", e)
35 })?;
36 find_parent_orgs_ids_cache(jwt_token.org_id,headers.clone())
37 }
43
44pub fn find_parent_ids_by_id(id: Uuid) -> Result<Vec<Uuid>, String> {
45 get(services::USER_API, format!("/organization/getParentOrgIdsById/{}", id), HeaderMap::new())
46}
47
48pub fn find_child_ids_by_id(id: Uuid, headers: HeaderMap) -> Result<Vec<Uuid>, String> {
49 get(services::USER_API, format!("/organization/getChildIdsForParentOrg/{}", id), headers)
50}
51
52pub fn find_by_id(id: Uuid, headers: HeaderMap) -> Result<OrganizationResponse, String> {
53 get::<OrganizationResponse>(services::USER_API, format!("/organization/{}", id), headers)
54}