lago_client/queries/
api_log.rs1use lago_types::{
2 error::{LagoError, Result},
3 requests::api_log::{GetApiLogRequest, ListApiLogsRequest},
4 responses::api_log::{GetApiLogResponse, ListApiLogsResponse},
5};
6use url::Url;
7
8use crate::client::LagoClient;
9
10impl LagoClient {
12 pub async fn list_api_logs(
20 &self,
21 request: Option<ListApiLogsRequest>,
22 ) -> Result<ListApiLogsResponse> {
23 let request = request.unwrap_or_default();
24 let region = self.config.region()?;
25 let mut url = Url::parse(&format!("{}/api_logs", region.endpoint()))
26 .map_err(|e| LagoError::Configuration(format!("Invalid URL: {e}")))?;
27
28 let query_params = request.to_query_params();
29
30 if !query_params.is_empty() {
31 let query_string = query_params
32 .iter()
33 .map(|(k, v)| format!("{k}={v}"))
34 .collect::<Vec<_>>()
35 .join("&");
36 url.set_query(Some(&query_string));
37 }
38
39 self.make_request("GET", url.as_str(), None::<&()>).await
40 }
41
42 pub async fn get_api_log(&self, request: GetApiLogRequest) -> Result<GetApiLogResponse> {
50 let region = self.config.region()?;
51 let url = format!("{}/api_logs/{}", region.endpoint(), request.request_id);
52 self.make_request("GET", &url, None::<&()>).await
53 }
54}