Crate paytour

Crate paytour 

Source
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;

Modules§

auth
client
config
error