userlib/remote/
organization_remote.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
use 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())
    // get::<Vec<Uuid>>(
    //     services::USER_API,
    //     String::from("/organization/getParentOrgIds"),
    //     headers,
    // )
}

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)
}