1use super::types::*;
4use crate::client::Client;
5use crate::error::{Error, Result};
6
7pub struct UsageApi<'a> {
9 client: &'a Client,
10}
11
12impl<'a> UsageApi<'a> {
13 pub(crate) fn new(client: &'a Client) -> Self {
14 Self { client }
15 }
16
17 pub async fn get(&self) -> Result<UsageResponse> {
19 let url = format!("{}/v1/usage", self.client.base_url());
20 let response = self.client.http().get(&url).send().await?;
21
22 if response.status().is_success() {
23 Ok(response.json().await?)
24 } else {
25 let status = response.status().as_u16();
26 let message = response.text().await.unwrap_or_default();
27 Err(Error::api(status, message))
28 }
29 }
30}