lago_client/queries/
customer_usage.rs1use lago_types::{
2 error::{LagoError, Result},
3 requests::customer_usage::GetCustomerCurrentUsageRequest,
4 responses::customer_usage::GetCustomerCurrentUsageResponse,
5};
6use url::Url;
7
8use crate::client::LagoClient;
9
10impl LagoClient {
11 pub async fn get_customer_current_usage(
22 &self,
23 request: GetCustomerCurrentUsageRequest,
24 ) -> Result<GetCustomerCurrentUsageResponse> {
25 let region = self.config.region()?;
26 let mut url = Url::parse(&format!(
27 "{}/customers/{}/current_usage",
28 region.endpoint(),
29 request.external_customer_id
30 ))
31 .map_err(|e| LagoError::Configuration(format!("Invalid URL: {e}")))?;
32
33 let query_params = request.to_query_params();
34
35 if !query_params.is_empty() {
36 let query_string = query_params
37 .iter()
38 .map(|(k, v)| format!("{k}={v}"))
39 .collect::<Vec<_>>()
40 .join("&");
41 url.set_query(Some(&query_string));
42 }
43
44 self.make_request("GET", url.as_str(), None::<&()>).await
45 }
46}