bitwarden_organization_invite_link/
invite_link_client.rs1use std::sync::Arc;
2
3use bitwarden_core::{Client, FromClient, client::ApiConfigurations, key_management::KeySlotIds};
4use bitwarden_crypto::KeyStore;
5
6use crate::{InviteLinkAdminClient, InviteLinkUserClient};
7
8#[bitwarden_ffi::wasm_object]
14#[derive(FromClient)]
15pub struct InviteLinkClient {
16 pub(crate) key_store: KeyStore<KeySlotIds>,
17 pub(crate) api_configurations: Arc<ApiConfigurations>,
18}
19
20#[bitwarden_ffi::wasm_export]
21impl InviteLinkClient {
22 pub fn admin(&self) -> InviteLinkAdminClient {
24 InviteLinkAdminClient {
25 key_store: self.key_store.clone(),
26 api_configurations: self.api_configurations.clone(),
27 }
28 }
29
30 pub fn user(&self) -> InviteLinkUserClient {
32 InviteLinkUserClient {
33 key_store: self.key_store.clone(),
34 api_configurations: self.api_configurations.clone(),
35 }
36 }
37}
38
39pub trait InviteLinkClientExt {
41 fn invite_link(&self) -> InviteLinkClient;
43}
44
45impl InviteLinkClientExt for Client {
46 fn invite_link(&self) -> InviteLinkClient {
47 InviteLinkClient::from_client(self)
48 }
49}