userlib/remote/
organization_remote.rs

1use 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    // get::<Vec<Uuid>>(
38    //     services::USER_API,
39    //     String::from("/organization/getParentOrgIds"),
40    //     headers,
41    // )
42}
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}