And the relevant body of the method looks like
let mut form = reqwest::multipart::Form::new();
let payload_json = to_string(message).unwrap();
let mut payload_field =
reqwest::multipart::Part::text(payload_json).file_name("payload_json");
payload_field = match payload_field.mime_str("application/json") {
Ok(part) => part,
Err(e) => {
return Err(InstanceServerError::MultipartCreationError {
error: e.to_string(),
})
}
};
form = form.part("payload_json", payload_field);
for (index, attachment) in files.iter().enumerate() {
let part_name = format!("files[{}]", index);
let content_disposition = format!(
"form-data; name=\"{}\"'; filename=\"{}\"",
part_name,
attachment
.get(index)
.unwrap()
.filename
.as_deref()
.unwrap_or("file")
);
let mut header_map = HeaderMap::new();
header_map
.insert(CONTENT_DISPOSITION, content_disposition.parse().unwrap())
.unwrap();