browserbase 0.1.0

Rust SDK for Browserbase - cloud browser automation platform
Documentation
use reqwest::Method;

use crate::{
    client::Browserbase,
    error::Error,
    models::{Project, ProjectUsage},
};

pub struct Projects<'a> {
    client: &'a Browserbase,
}

impl<'a> Projects<'a> {
    pub(crate) fn new(client: &'a Browserbase) -> Self {
        Self { client }
    }

    pub async fn list(&self) -> Result<Vec<Project>, Error> {
        let rb = self.client.request(Method::GET, "projects")?;
        self.client.send_json(rb).await
    }

    pub async fn get(&self, id: &str) -> Result<Project, Error> {
        let rb = self
            .client
            .request(Method::GET, &format!("projects/{id}"))?;
        self.client.send_json(rb).await
    }

    pub async fn usage(&self, id: &str) -> Result<ProjectUsage, Error> {
        let rb = self
            .client
            .request(Method::GET, &format!("projects/{id}/usage"))?;
        self.client.send_json(rb).await
    }
}