siera_cloudagent_python/cloudagent/
credential_definition.rs1use crate::agent::CloudAgentPython;
2use async_trait::async_trait;
3use serde_json::json;
4use siera_agent::error::Result;
5use siera_agent::modules::credential_definition::{
6 CredentialDefinition, CredentialDefinitionCreateOptions, CredentialDefinitionCreateResponse,
7 CredentialDefinitionGetAllResponse, CredentialDefinitionGetByIdResponse,
8 CredentialDefinitionModule,
9};
10
11#[async_trait]
12impl CredentialDefinitionModule for CloudAgentPython {
13 async fn create(
14 &self,
15 options: CredentialDefinitionCreateOptions,
16 ) -> Result<CredentialDefinitionCreateResponse> {
17 let url = self.create_url(&["credential-definitions"])?;
18
19 let body = json!(options);
20
21 self.post(url, None, Some(body)).await
22 }
23
24 async fn get_by_id(&self, id: String) -> Result<CredentialDefinition> {
25 let url = self.create_url(&["credential-definitions", &id])?;
26 let response: CredentialDefinitionGetByIdResponse = self.get(url, None).await?;
27
28 Ok(response.credential_definition)
29 }
30
31 async fn get_all(&self) -> Result<CredentialDefinitionGetAllResponse> {
32 let url = self.create_url(&["credential-definitions", "created"])?;
33 self.get(url, None).await
34 }
35}