Expand description
§Paytour Rust SDK
Biblioteca para autenticar e consumir endpoints essenciais da
API Paytour,
replicando a arquitetura modular utilizada no crate clickup.
§Recursos
- Autenticação via e-mail/senha ou credenciais de aplicativo
- Renovação de token usando
refresh_token - Cliente HTTP para listar passeios (
GET /passeio) - Gerenciamento de configuração via variáveis de ambiente /
.env - Tratamento consistente de erros
§Exemplo rápido
use paytour::{
auth::{AuthStrategy, PaytourAuthenticator},
client::{PaytourClient, PasseioQuery},
config::EnvManager,
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
env_logger::init();
let env = EnvManager::load()?;
let authenticator = PaytourAuthenticator::new(&env);
let token = authenticator
.authenticate(env.auth_strategy())
.await?;
let client = PaytourClient::new(env.api_base_url.clone(), token.access_token.clone());
let response = client.list_passeios(&PasseioQuery::default()).await?;
println!("Passeios disponíveis: {}", response.itens.len());
Ok(())
}Re-exports§
pub use auth::AuthStrategy;pub use auth::PaytourAuthenticator;pub use auth::TokenResponse;pub use auth::TokenStorage;pub use client::Atividade;pub use client::AtividadeDetail;pub use client::AtividadeQuery;pub use client::Carrinho;pub use client::CarrinhoDetail;pub use client::CarrinhoListResponse;pub use client::CarrinhoQuery;pub use client::CheckInResponse;pub use client::ComboItem;pub use client::ComboListResponse;pub use client::ComboQuery;pub use client::Cupom;pub use client::CupomCreateRequest;pub use client::CupomDetail;pub use client::CupomListResponse;pub use client::CupomQuery;pub use client::CupomUpdateRequest;pub use client::CupomValidateRequest;pub use client::CupomValidateResponse;pub use client::Destino;pub use client::DestinoDetail;pub use client::DestinoListResponse;pub use client::DestinoQuery;pub use client::FaixasEtariasResponse;pub use client::Foto;pub use client::FotoCreateRequest;pub use client::FotoDetail;pub use client::FotoListResponse;pub use client::FotoUpdateRequest;pub use client::FotosService;pub use client::HorarioDisponivel;pub use client::HorariosResponse;pub use client::Icone;pub use client::IconeListResponse;pub use client::Passeio;pub use client::PasseioDetail;pub use client::PasseioListResponse;pub use client::PasseioQuery;pub use client::Pedido;pub use client::PedidoDetail;pub use client::PedidoListResponse;pub use client::PedidoQuery;pub use client::PaytourClient;pub use config::EnvManager;pub use error::PaytourError;pub use error::Result;