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
}
}