use crate::api::{BuildRequest};
use crate::prelude::Purpose;
use crate::OPENAI_URL;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq)]
pub struct Request {
pub file_id: String,
}
impl Request {
pub fn new(file_id: String) -> Self {
Request { file_id }
}
}
impl BuildRequest for Request {
fn build_request(&self, client: &crate::Client) -> crate::RequestBuilder {
client
.reqwest_client()
.get(format!("{OPENAI_URL}/files/{}", self.file_id))
.bearer_auth(client.gpt_token())
}
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Response {
pub id: String,
pub object: String,
pub bytes: u64,
pub created_at: u64,
pub filename: String,
pub purpose: Purpose,
}
#[cfg_attr(not(feature = "blocking"), async_trait::async_trait)]
impl crate::client::Request for Request {
type Response = Response;
}