Crate digisac

Crate digisac 

Source
Expand description

§Digisac Rust SDK

Biblioteca para autenticar e consumir endpoints da API Digisac, seguindo os mesmos padrões de arquitetura do crate paytour e incorporando boas práticas de Rust (macros, traits, builders).

§Recursos

  • Autenticação via token de acesso
  • Gerenciamento de webhooks
  • Envio de mensagens
  • Cliente HTTP genérico com zero-cost abstractions
  • CLI completo para todos os endpoints
  • Servidor HTTP para integração com agentes

§Exemplo rápido

use digisac::{
    client::{DigisacClient, DigisacApi, SendMessageRequest},
    config::EnvManager,
};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let env = EnvManager::load()?;
    let token = env.access_token.ok_or("Token não encontrado")?;

    let client = DigisacClient::new(env.api_base_url, token);

    let request = SendMessageRequest::builder()
        .service_id("123".to_string())
        .contact_id("456".to_string())
        .text("Olá!".to_string())
        .build();

    let response = client.send_message(&request).await?;
    println!("Mensagem enviada: {:?}", response);
    Ok(())
}

§⚠️ Segurança

  • Nunca commite tokens em repositórios
  • Use variáveis de ambiente ou arquivos .env (não versionados)
  • Tokens são automaticamente omitidos de logs (#[debug(skip)])

Re-exports§

pub use auth::TokenStorage;
pub use client::DigisacApi;
pub use client::DigisacClient;
pub use client::Message;
pub use client::MessageResponse;
pub use client::SendMessageRequest;
pub use client::Webhook;
pub use client::WebhookCreateRequest;
pub use client::WebhookListResponse;
pub use client::WebhookUpdateRequest;
pub use config::EnvManager;
pub use error::DigisacError;
pub use error::Result;

Modules§

auth
client
config
error