browserbase 0.1.0

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

use crate::{
    client::Browserbase,
    error::Error,
    models::{Context, CreateContextRequest, UpdateContextRequest},
};

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

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

    pub async fn create(&self, request: CreateContextRequest) -> Result<Context, Error> {
        let rb = self
            .client
            .request(Method::POST, "contexts")?
            .json(&request);
        self.client.send_json(rb).await
    }

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

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

    pub async fn update(&self, id: &str, request: UpdateContextRequest) -> Result<Context, Error> {
        let rb = self
            .client
            .request(Method::PUT, &format!("contexts/{id}"))?
            .json(&request);
        self.client.send_json(rb).await
    }

    pub async fn delete(&self, id: &str) -> Result<(), Error> {
        let rb = self
            .client
            .request(Method::DELETE, &format!("contexts/{id}"))?;
        self.client.send_unit(rb).await
    }
}