jkn_rust 0.1.0

Client Rust untuk bridging API BPJS/JKN
Documentation
pub mod antrean;
pub mod antrean_fktp;
pub mod aplicares;
pub mod apotek;
pub mod icare;
pub mod pcare;
pub mod rekam_medis;
pub mod vclaim;

use std::sync::Arc;

use crate::JknClient;
use crate::error::Result;

#[derive(Clone)]
pub struct Jkn {
    client: Arc<JknClient>,
}

impl Jkn {
    pub fn new(client: JknClient) -> Self {
        Self {
            client: Arc::new(client),
        }
    }

    pub fn from_env() -> Result<Self> {
        Ok(Self::new(JknClient::from_env()?))
    }

    pub fn client(&self) -> Arc<JknClient> {
        Arc::clone(&self.client)
    }

    pub fn aplicares(&self) -> aplicares::Aplicares {
        aplicares::Aplicares::new(self.client())
    }

    pub fn antrean(&self) -> antrean::Antrean {
        antrean::Antrean::new(self.client())
    }

    pub fn antrean_fktp(&self) -> antrean_fktp::AntreanFktp {
        antrean_fktp::AntreanFktp::new(self.client())
    }

    pub fn apotek(&self) -> apotek::Apotek {
        apotek::Apotek::new(self.client())
    }

    pub fn icare(&self) -> icare::ICare {
        icare::ICare::new(self.client())
    }

    pub fn pcare(&self) -> pcare::PCare {
        pcare::PCare::new(self.client())
    }

    pub fn rekam_medis(&self) -> rekam_medis::RekamMedis {
        rekam_medis::RekamMedis::new(self.client())
    }

    pub fn vclaim(&self) -> vclaim::VClaim {
        vclaim::VClaim::new(self.client())
    }
}