tlw_irus
Cliente Rust para a API Suri - plataforma de atendimento e e-commerce via WhatsApp.
Instalacao
Adicione ao seu Cargo.toml:
[]
= "0.1.2"
= { = "1", = ["full"] }
Uso Basico
use ;
async
APIs Disponiveis
Shop (E-commerce)
use ;
// Criar produto
let product = new
.with_price
.with_stock
.with_description;
client.shop.create_product.await?;
// Listar produtos com paginacao
let response = client.shop
.list_products
.await?;
// Batch de produtos (criar/atualizar em massa)
let produtos = vec!;
let batch = client.shop
.batch_products
.await?;
// Aguardar conclusao do batch
let status = client.shop
.wait_batch_completion
.await?;
println!;
// Atualizar precos
use UpdatePricesRequest;
client.shop.update_prices.await?;
// Atualizar estoque
use UpdateStocksRequest;
use Stock;
client.shop.update_stocks.await?;
Categorias
use ;
// Listar categorias
let categories = client.shop.list_categories.await?;
// Criar categoria
let category = client.shop.create_category.await?;
Colecoes
use ;
// Listar colecoes
let collections = client.shop.list_collections.await?;
// Criar colecao manual
let collection = new
.with_product
.with_product;
client.shop.create_collection.await?;
Pedidos
use ;
// Listar pedidos
let orders = client.shop
.list_orders
.await?;
// Obter pedido especifico
let order = client.shop.get_order.await?;
// Atualizar logistica
client.shop.update_order_logistic.await?;
// Marcar como pago
use MarkOrderPaidRequest;
client.shop.mark_order_paid.await?;
// Cancelar pedido
use CancelOrderRequest;
client.shop.cancel_order.await?;
Contatos
use ;
// Importar contato
let contact = client.contacts
.import
.await?;
// Obter contato
let contact = client.contacts.get.await?;
// Adicionar variavel
client.contacts
.add_variable
.await?;
// Solicitar atendimento
client.contacts
.request_attendance
.await?;
Mensagens
use SendMessageRequest;
// Enviar texto simples
client.messages
.send_text
.await?;
// Enviar imagem com caption
client.messages
.send
.await?;
// Responder mensagem
client.messages
.send
.await?;
Templates
// Listar templates
let templates = client.templates.list.await?;
// Obter template especifico
let template = client.templates.get.await?;
Campanhas
use ;
// Listar campanhas
let campaigns = client.campaigns.list.await?;
// Criar campanha
let campaign = client.campaigns
.create
.await?;
// Iniciar campanha
client.campaigns.start.await?;
// Pausar campanha
client.campaigns.pause.await?;
// Cancelar campanha
client.campaigns.cancel.await?;
Departamentos e Atendentes
// Listar departamentos
let departments = client.departments.list.await?;
// Listar atendentes
let attendants = client.attendants.list.await?;
Canais
// Listar canais
let channels = client.channels.list.await?;
// Obter canal especifico
let channel = client.channels.get.await?;
Flows (Automacoes)
// Listar flows
let flows = client.flows.list.await?;
// Obter flow especifico
let flow = client.flows.get.await?;
Atendimentos
use ;
// Listar atendimentos ativos
let attendances = client.attendances
.list
.await?;
Webhook
use ;
// Configurar webhook
client.shop.set_webhook.await?;
Tratamento de Erros
use SuriError;
match client.shop.get_product.await
Configuracao Avancada
use Duration;
// OBRIGATÓRIO: Configure as variáveis de ambiente antes:
// export SURI_BASE_URL="https://api.suri.com.br"
// export SURI_API_TOKEN="seu_token_aqui"
let config = from_env
.expect
.with_timeout // Timeout de 60 segundos
.with_max_retries // 5 tentativas em caso de erro
.with_rate_limit // 20 requisicoes por segundo
.with_user_agent; // User-Agent personalizado
let client = new;
Estrutura do Crate
tlw_irus/
├── Cargo.toml
├── README.md
└── src/
├── lib.rs # Re-exports publicos
├── client.rs # Cliente HTTP principal
├── error.rs # Tipos de erro (SuriError)
├── config.rs # Configuracao do cliente
├── types/ # Tipos de dados
│ ├── mod.rs
│ ├── user.rs
│ ├── channel.rs
│ ├── department.rs
│ ├── attendant.rs
│ ├── message.rs
│ ├── template.rs
│ ├── campaign.rs
│ ├── flow.rs
│ ├── attendance.rs
│ └── shop/
│ ├── mod.rs
│ ├── product.rs
│ ├── category.rs
│ ├── collection.rs
│ ├── order.rs
│ ├── batch.rs
│ └── store.rs
└── api/ # Implementacoes de endpoints
├── mod.rs
├── shop.rs
├── contacts.rs
├── messages.rs
├── templates.rs
├── campaigns.rs
├── departments.rs
├── attendants.rs
├── channels.rs
├── flows.rs
└── attendances.rs
Licenca
MIT