siera_cloudagent_python/cloudagent/
credential_definition.rs

1use 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}