use crate::client::BigRag;
use crate::core::urlencode;
use crate::error::BigRagError;
use crate::types::query::{
BatchQueryBody, BatchQueryResponse, MultiQueryBody, MultiQueryResponse, QueryBody,
QueryResponse,
};
pub struct Queries<'a> {
pub(crate) client: &'a BigRag,
}
impl Queries<'_> {
pub async fn query(
&self,
collection: &str,
body: QueryBody,
) -> Result<QueryResponse, BigRagError> {
let path = format!("/v1/collections/{}/query", urlencode(collection));
self.client.transport.post(&path, &body).await
}
pub async fn multi_query(
&self,
body: MultiQueryBody,
) -> Result<MultiQueryResponse, BigRagError> {
self.client.transport.post("/v1/query", &body).await
}
pub async fn batch_query(
&self,
body: BatchQueryBody,
) -> Result<BatchQueryResponse, BigRagError> {
self.client.transport.post("/v1/batch/query", &body).await
}
}