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::{
    CredentialModule, CredentialOfferOptions, CredentialOfferResponse,
};

#[async_trait]
impl CredentialModule for CloudAgentPython {
    async fn send_offer(&self, options: CredentialOfferOptions) -> Result<CredentialOfferResponse> {
        let url = self.create_url(&["issue-credential", "send-offer"])?;

        let mut attributes = vec![];
        for (i, key) in options.keys.iter().enumerate() {
            let value = &options.values[i];
            attributes.push(json!({"name": key, "value": value}));
        }

        let body = json!({
          "connection_id": options.connection_id,
          "cred_def_id": options.cred_def_id,
          "credential_preview": {
            "@type": "issue-credential/1.0/credential-preview",
            "attributes": attributes,
          },
        });

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