async_openai_alt/
message_files.rs1use serde::Serialize;
2
3use crate::{
4 config::Config,
5 error::OpenAIError,
6 types::{ListMessageFilesResponse, MessageFileObject},
7 Client,
8};
9
10pub struct MessageFiles<'c, C: Config> {
12 client: &'c Client<C>,
13 pub thread_id: String,
14 pub message_id: String,
15}
16
17impl<'c, C: Config> MessageFiles<'c, C> {
18 pub fn new(client: &'c Client<C>, thread_id: &str, message_id: &str) -> Self {
19 Self {
20 client,
21 thread_id: thread_id.into(),
22 message_id: message_id.into(),
23 }
24 }
25
26 pub async fn retrieve(&self, file_id: &str) -> Result<MessageFileObject, OpenAIError> {
28 self.client
29 .get(&format!(
30 "/threads/{}/messages/{}/files/{file_id}",
31 self.thread_id, self.message_id
32 ))
33 .await
34 }
35
36 pub async fn list<Q>(&self, query: &Q) -> Result<ListMessageFilesResponse, OpenAIError>
38 where
39 Q: Serialize + ?Sized,
40 {
41 self.client
42 .get_with_query(
43 &format!(
44 "/threads/{}/messages/{}/files",
45 self.thread_id, self.message_id
46 ),
47 query,
48 )
49 .await
50 }
51}