diff --git a/wp_api/src/wp_com/endpoint/support_tickets_endpoint.rs b/wp_api/src/wp_com/endpoint/support_tickets_endpoint.rs index bdc19b3ad..e089d92e6 100644 --- a/wp_api/src/wp_com/endpoint/support_tickets_endpoint.rs +++ b/wp_api/src/wp_com/endpoint/support_tickets_endpoint.rs @@ -12,13 +12,13 @@ use wp_derive_request_builder::WpDerivedRequest; #[derive(WpDerivedRequest)] enum SupportTicketsRequest { - #[post(url = "/mobile-support/conversations", params = &CreateSupportTicketParams, output = SupportConversation)] + #[post(url = "/mobile-support/conversations", params = &CreateSupportTicketParams, output = SupportConversation, multipart = true)] CreateSupportTicket, #[get(url = "/mobile-support/conversations", output = Vec)] GetSupportConversationList, #[get(url = "/mobile-support/conversations/", output = SupportConversation)] GetSupportConversation, - #[post(url = "/mobile-support/conversations/", params = &AddMessageToSupportConversationParams, output = SupportConversation)] + #[post(url = "/mobile-support/conversations/", params = &AddMessageToSupportConversationParams, output = SupportConversation, multipart = true)] AddMessageToSupportConversation, } diff --git a/wp_api/src/wp_com/support_tickets.rs b/wp_api/src/wp_com/support_tickets.rs index 25711c413..67d7b41fa 100644 --- a/wp_api/src/wp_com/support_tickets.rs +++ b/wp_api/src/wp_com/support_tickets.rs @@ -30,7 +30,6 @@ impl RequiresMultipartForm for CreateSupportTicketParams { .enumerate() .map(|(i, file_path)| { ( - // TODO: The backend is not ready yet. This name may need to be changed. format!("attachment_{i}"), MultipartFormFile { file_path: file_path.clone(), @@ -172,10 +171,30 @@ pub struct SupportAgentIdentity { #[derive(Debug, PartialEq, Eq, Serialize, uniffi::Record)] pub struct AddMessageToSupportConversationParams { pub message: String, + #[serde(skip)] #[uniffi(default = [])] pub attachments: Vec, } +impl RequiresMultipartForm for AddMessageToSupportConversationParams { + fn multipart_form_files(&self) -> HashMap { + self.attachments + .iter() + .enumerate() + .map(|(i, file_path)| { + ( + format!("attachment_{i}"), + MultipartFormFile { + file_path: file_path.clone(), + mime_type: None, + file_name: None, + }, + ) + }) + .collect() + } +} + impl_as_query_value_for_new_type!(ConversationId); uniffi::custom_newtype!(ConversationId, u64); #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]