bitwarden_api_key_connector/apis/
mod.rs1use std::sync::Arc;
2
3use crate::apis::configuration::Configuration;
4
5pub mod configuration;
6pub mod user_keys_api;
7
8#[derive(Debug, Clone)]
9pub struct ResponseContent {
10 pub status: reqwest::StatusCode,
11 pub content: String,
12}
13
14#[allow(missing_docs)]
15#[derive(Debug)]
16pub enum Error {
17 Reqwest(reqwest::Error),
18 ReqwestMiddleware(reqwest_middleware::Error),
19 Serde(serde_json::Error),
20 Io(std::io::Error),
21 ResponseError(ResponseContent),
22}
23
24impl From<reqwest::Error> for Error {
25 fn from(e: reqwest::Error) -> Self {
26 Error::Reqwest(e)
27 }
28}
29
30impl From<reqwest_middleware::Error> for Error {
31 fn from(e: reqwest_middleware::Error) -> Self {
32 Error::ReqwestMiddleware(e)
33 }
34}
35
36impl From<serde_json::Error> for Error {
37 fn from(e: serde_json::Error) -> Self {
38 Error::Serde(e)
39 }
40}
41
42impl From<std::io::Error> for Error {
43 fn from(e: std::io::Error) -> Self {
44 Error::Io(e)
45 }
46}
47
48pub enum ApiClient {
49 Real(ApiClientReal),
50 Mock(ApiClientMock),
51}
52
53pub struct ApiClientReal {
54 user_keys_api: user_keys_api::UserKeysApiClient,
55}
56
57pub struct ApiClientMock {
58 pub user_keys_api: user_keys_api::MockUserKeysApi,
59}
60
61impl ApiClient {
62 pub fn new(configuration: &Arc<Configuration>) -> Self {
63 Self::Real(ApiClientReal {
64 user_keys_api: user_keys_api::UserKeysApiClient::new(configuration.clone()),
65 })
66 }
67
68 pub fn new_mocked(func: impl FnOnce(&mut ApiClientMock)) -> Self {
69 let mut mock = ApiClientMock {
70 user_keys_api: user_keys_api::MockUserKeysApi::new(),
71 };
72 func(&mut mock);
73 Self::Mock(mock)
74 }
75
76 pub fn user_keys_api(&self) -> &dyn user_keys_api::UserKeysApi {
77 match self {
78 ApiClient::Real(real) => &real.user_keys_api,
79 ApiClient::Mock(mock) => &mock.user_keys_api,
80 }
81 }
82}