bitwarden_core/client/
client.rs1use std::sync::Arc;
2
3use super::internal::InternalClient;
4use crate::{
5 auth::auth_tokens::TokenHandler,
6 client::{
7 builder::ClientBuilder, client_settings::ClientSettings,
8 tracing_middleware::ReqwestTracingMiddleware,
9 },
10};
11
12#[derive(Clone)]
14pub struct Client {
15 #[doc(hidden)]
20 pub internal: Arc<InternalClient>,
21}
22
23impl Client {
24 pub fn new(settings: Option<ClientSettings>) -> Self {
26 let mut builder = ClientBuilder::new();
27 if let Some(s) = settings {
28 builder = builder.with_settings(s);
29 }
30 builder = builder.with_middleware(vec![Arc::new(ReqwestTracingMiddleware)]);
31 builder.build()
32 }
33
34 pub fn new_with_token_handler(
37 settings: Option<ClientSettings>,
38 token_handler: Arc<dyn TokenHandler>,
39 ) -> Self {
40 let mut builder = ClientBuilder::new().with_token_handler(token_handler);
41 if let Some(s) = settings {
42 builder = builder.with_settings(s);
43 }
44 builder = builder.with_middleware(vec![Arc::new(ReqwestTracingMiddleware)]);
45 builder.build()
46 }
47
48 pub fn builder() -> ClientBuilder {
50 ClientBuilder::new()
51 }
52}