bitwarden_sm/
client_projects.rs1use bitwarden_core::Client;
2
3use crate::{
4 error::SecretsManagerError,
5 projects::{
6 create_project, delete_projects, get_project, list_projects, update_project,
7 ProjectCreateRequest, ProjectGetRequest, ProjectPutRequest, ProjectResponse,
8 ProjectsDeleteRequest, ProjectsDeleteResponse, ProjectsListRequest, ProjectsResponse,
9 },
10};
11
12pub type ClientProjects = ProjectsClient;
14
15#[allow(missing_docs)]
16pub struct ProjectsClient {
17 pub client: Client,
18}
19
20impl ProjectsClient {
21 #[allow(missing_docs)]
22 pub fn new(client: Client) -> Self {
23 Self { client }
24 }
25
26 #[allow(missing_docs)]
27 pub async fn get(
28 &self,
29 input: &ProjectGetRequest,
30 ) -> Result<ProjectResponse, SecretsManagerError> {
31 get_project(&self.client, input).await
32 }
33
34 #[allow(missing_docs)]
35 pub async fn create(
36 &self,
37 input: &ProjectCreateRequest,
38 ) -> Result<ProjectResponse, SecretsManagerError> {
39 create_project(&self.client, input).await
40 }
41
42 #[allow(missing_docs)]
43 pub async fn list(
44 &self,
45 input: &ProjectsListRequest,
46 ) -> Result<ProjectsResponse, SecretsManagerError> {
47 list_projects(&self.client, input).await
48 }
49
50 #[allow(missing_docs)]
51 pub async fn update(
52 &self,
53 input: &ProjectPutRequest,
54 ) -> Result<ProjectResponse, SecretsManagerError> {
55 update_project(&self.client, input).await
56 }
57
58 #[allow(missing_docs)]
59 pub async fn delete(
60 &self,
61 input: ProjectsDeleteRequest,
62 ) -> Result<ProjectsDeleteResponse, SecretsManagerError> {
63 delete_projects(&self.client, input).await
64 }
65}
66
67pub trait ClientProjectsExt {
69 #[allow(missing_docs)]
70 fn projects(&self) -> ClientProjects;
71}
72
73impl ClientProjectsExt for Client {
74 fn projects(&self) -> ClientProjects {
75 ProjectsClient::new(self.clone())
76 }
77}
78
79#[allow(missing_docs)]
80pub trait ProjectsClientExt {
81 #[allow(missing_docs)]
82 fn projects(&self) -> ProjectsClient;
83}
84
85impl ProjectsClientExt for Client {
86 fn projects(&self) -> ProjectsClient {
87 ProjectsClient::new(self.clone())
88 }
89}