use std::sync::Arc;
use async_trait::async_trait;
use ex3_canister_types::CanisterId;
use ex3_canister_client::canister_call_wrapper::call;
use ex3_canister_client::{ActorResult, CanisterResult};
use ex3_secret_vault_public_types::SecretVaultSetting;
use crate::SecretRouter;
#[derive(Debug)]
pub struct SecretRouterClient {
pub canister_id: Arc<CanisterId>,
}
#[allow(dead_code)]
impl SecretRouterClient {
pub fn new(canister_id: CanisterId) -> Self {
Self {
canister_id: Arc::new(canister_id),
}
}
}
#[async_trait]
impl SecretRouter for SecretRouterClient {
async fn accept_new_secret_vault(
&self,
secret_vault_id: CanisterId,
secret_vault_setting: SecretVaultSetting,
) -> CanisterResult<ActorResult<()>> {
call(
&self.canister_id,
"accept_new_secret_vault",
(secret_vault_id, secret_vault_setting),
)
.await
}
}