mod get_rates;
mod get_tables;
use crate::api::exchange_rates::get_rates::GetRatesBuilder;
use crate::api::exchange_rates::get_tables::GetTablesBuilder;
use crate::client::service_client::ServiceClient;
use crate::client::{NBP_API_EXCHANGE_RATES_ENDPOINT, NbpClient};
use crate::models::currency_code::CurrencyCode;
use crate::models::date_parameters::NoDateParameter;
use crate::models::table_type::TableType;
pub struct ExchangeRatesHandler {
client: ServiceClient,
}
impl NbpClient {
pub fn exchange_rates(&self) -> ExchangeRatesHandler {
ExchangeRatesHandler {
client: ServiceClient::new(
self.base_url()
.join(NBP_API_EXCHANGE_RATES_ENDPOINT)
.unwrap(),
),
}
}
}
impl ExchangeRatesHandler {
pub fn tables(&self, table: TableType) -> GetTablesBuilder<NoDateParameter> {
GetTablesBuilder::new(self.client.clone(), table)
}
pub fn rates(
&self,
table: TableType,
currency: CurrencyCode,
) -> GetRatesBuilder<NoDateParameter> {
GetRatesBuilder::new(self.client.clone(), table, currency)
}
}