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
15pub struct ProjectsClient {
16 pub client: Client,
17}
18
19impl ProjectsClient {
20 pub fn new(client: Client) -> Self {
21 Self { client }
22 }
23
24 pub async fn get(
25 &self,
26 input: &ProjectGetRequest,
27 ) -> Result<ProjectResponse, SecretsManagerError> {
28 get_project(&self.client, input).await
29 }
30
31 pub async fn create(
32 &self,
33 input: &ProjectCreateRequest,
34 ) -> Result<ProjectResponse, SecretsManagerError> {
35 create_project(&self.client, input).await
36 }
37
38 pub async fn list(
39 &self,
40 input: &ProjectsListRequest,
41 ) -> Result<ProjectsResponse, SecretsManagerError> {
42 list_projects(&self.client, input).await
43 }
44
45 pub async fn update(
46 &self,
47 input: &ProjectPutRequest,
48 ) -> Result<ProjectResponse, SecretsManagerError> {
49 update_project(&self.client, input).await
50 }
51
52 pub async fn delete(
53 &self,
54 input: ProjectsDeleteRequest,
55 ) -> Result<ProjectsDeleteResponse, SecretsManagerError> {
56 delete_projects(&self.client, input).await
57 }
58}
59
60pub trait ClientProjectsExt {
62 fn projects(&self) -> ClientProjects;
63}
64
65impl ClientProjectsExt for Client {
66 fn projects(&self) -> ClientProjects {
67 ProjectsClient::new(self.clone())
68 }
69}
70
71pub trait ProjectsClientExt {
72 fn projects(&self) -> ProjectsClient;
73}
74
75impl ProjectsClientExt for Client {
76 fn projects(&self) -> ProjectsClient {
77 ProjectsClient::new(self.clone())
78 }
79}