siera-cloudagent-python 0.2.0

Hyperledger Aries Cloudagent Python controller.
Documentation
use crate::agent::CloudAgentPython;
use async_trait::async_trait;
use serde_json::json;
use siera_agent::error::Result;
use siera_agent::modules::credential_definition::{
    CredentialDefinition, CredentialDefinitionCreateOptions, CredentialDefinitionCreateResponse,
    CredentialDefinitionGetAllResponse, CredentialDefinitionGetByIdResponse,
    CredentialDefinitionModule,
};

#[async_trait]
impl CredentialDefinitionModule for CloudAgentPython {
    async fn create(
        &self,
        options: CredentialDefinitionCreateOptions,
    ) -> Result<CredentialDefinitionCreateResponse> {
        let url = self.create_url(&["credential-definitions"])?;

        let body = json!(options);

        self.post(url, None, Some(body)).await
    }

    async fn get_by_id(&self, id: String) -> Result<CredentialDefinition> {
        let url = self.create_url(&["credential-definitions", &id])?;
        let response: CredentialDefinitionGetByIdResponse = self.get(url, None).await?;

        Ok(response.credential_definition)
    }

    async fn get_all(&self) -> Result<CredentialDefinitionGetAllResponse> {
        let url = self.create_url(&["credential-definitions", "created"])?;
        self.get(url, None).await
    }
}