dune_api/usage/
api.rs

1//! Usage API implementation
2
3use super::types::*;
4use crate::client::Client;
5use crate::error::{Error, Result};
6
7/// Usage API
8pub 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    /// Get account usage statistics
18    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}