Skip to content

Commit 0856f3f

Browse files
committed
Fix multipart data getting json serialized when it shouldn't be
1 parent d832c69 commit 0856f3f

4 files changed

Lines changed: 54 additions & 12 deletions

File tree

src/apis/files_api.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1248,8 +1248,15 @@ pub async fn upload_image(
12481248
if let Some(param_value) = p_form_mask_tag {
12491249
multipart_form = multipart_form.text("maskTag", serde_json::to_string(&param_value)?);
12501250
}
1251-
multipart_form = multipart_form.text("tag", serde_json::to_string(&p_form_tag)?);
1252-
//Replaced: multipart_form = multipart_form.text("tag", p_form_tag.to_string());
1251+
macro_rules! serialize {
1252+
($form:ident, data, $data:ident) => {
1253+
$form = $form.text("data", serde_json::to_string(&$data)?);
1254+
};
1255+
($form:ident, $tag:ident, $data:ident) => {
1256+
$form = $form.text(stringify!($tag), $data.to_string());
1257+
};
1258+
}
1259+
serialize!(multipart_form, tag, p_form_tag);
12531260
req_builder = req_builder.multipart(multipart_form);
12541261

12551262
let req = req_builder.build()?;

src/apis/invite_api.rs

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -346,8 +346,15 @@ pub async fn invite_user_with_photo(
346346
req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
347347
}
348348
let mut multipart_form = reqwest::multipart::Form::new();
349-
multipart_form = multipart_form.text("data", serde_json::to_string(&p_form_data)?);
350-
//Replaced: multipart_form = multipart_form.text("data", p_form_data.to_string());
349+
macro_rules! serialize {
350+
($form:ident, data, $data:ident) => {
351+
$form = $form.text("data", serde_json::to_string(&$data)?);
352+
};
353+
($form:ident, $tag:ident, $data:ident) => {
354+
$form = $form.text(stringify!($tag), $data.to_string());
355+
};
356+
}
357+
serialize!(multipart_form, data, p_form_data);
351358
let file = TokioFile::open(&p_form_image).await?;
352359
let stream = FramedRead::new(file, BytesCodec::new());
353360
let file_name = p_form_image
@@ -466,8 +473,15 @@ pub async fn request_invite_with_photo(
466473
req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
467474
}
468475
let mut multipart_form = reqwest::multipart::Form::new();
469-
multipart_form = multipart_form.text("data", serde_json::to_string(&p_form_data)?);
470-
//Replaced: multipart_form = multipart_form.text("data", p_form_data.to_string());
476+
macro_rules! serialize {
477+
($form:ident, data, $data:ident) => {
478+
$form = $form.text("data", serde_json::to_string(&$data)?);
479+
};
480+
($form:ident, $tag:ident, $data:ident) => {
481+
$form = $form.text(stringify!($tag), $data.to_string());
482+
};
483+
}
484+
serialize!(multipart_form, data, p_form_data);
471485
let file = TokioFile::open(&p_form_image).await?;
472486
let stream = FramedRead::new(file, BytesCodec::new());
473487
let file_name = p_form_image
@@ -642,8 +656,15 @@ pub async fn respond_invite_with_photo(
642656
req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
643657
}
644658
let mut multipart_form = reqwest::multipart::Form::new();
645-
multipart_form = multipart_form.text("data", serde_json::to_string(&p_form_data)?);
646-
//Replaced: multipart_form = multipart_form.text("data", p_form_data.to_string());
659+
macro_rules! serialize {
660+
($form:ident, data, $data:ident) => {
661+
$form = $form.text("data", serde_json::to_string(&$data)?);
662+
};
663+
($form:ident, $tag:ident, $data:ident) => {
664+
$form = $form.text(stringify!($tag), $data.to_string());
665+
};
666+
}
667+
serialize!(multipart_form, data, p_form_data);
647668
let file = TokioFile::open(&p_form_image).await?;
648669
let stream = FramedRead::new(file, BytesCodec::new());
649670
let file_name = p_form_image

src/apis/prints_api.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -294,8 +294,15 @@ pub async fn upload_print(
294294
if let Some(param_value) = p_form_note {
295295
multipart_form = multipart_form.text("note", param_value.to_string());
296296
}
297-
multipart_form = multipart_form.text("timestamp", serde_json::to_string(&p_form_timestamp)?);
298-
//Replaced: multipart_form = multipart_form.text("timestamp", p_form_timestamp.to_string());
297+
macro_rules! serialize {
298+
($form:ident, data, $data:ident) => {
299+
$form = $form.text("data", serde_json::to_string(&$data)?);
300+
};
301+
($form:ident, $tag:ident, $data:ident) => {
302+
$form = $form.text(stringify!($tag), $data.to_string());
303+
};
304+
}
305+
serialize!(multipart_form, timestamp, p_form_timestamp);
299306
if let Some(param_value) = p_form_world_id {
300307
multipart_form = multipart_form.text("worldId", param_value.to_string());
301308
}

templates/reqwest/api.mustache

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -483,8 +483,15 @@ pub {{#supportAsync}}async {{/supportAsync}}fn {{{operationId}}}(configuration:
483483
{{^isFile}}
484484
{{#required}}
485485
{{^isNullable}}
486-
multipart_form = multipart_form.text("{{{baseName}}}", serde_json::to_string(&{{{vendorExtensions.x-rust-param-identifier}}})?);
487-
//Replaced: multipart_form = multipart_form.text("{{{baseName}}}", {{{vendorExtensions.x-rust-param-identifier}}}{{#isArray}}.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(","){{/isArray}}.to_string());
486+
macro_rules! serialize {
487+
($form:ident, data, $data:ident) => {
488+
$form = $form.text("data", serde_json::to_string(&$data)?);
489+
};
490+
($form:ident, $tag:ident, $data:ident) => {
491+
$form = $form.text(stringify!($tag), $data{{#isArray}}.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(","){{/isArray}}.to_string());
492+
};
493+
}
494+
serialize!(multipart_form, {{{baseName}}}, {{{vendorExtensions.x-rust-param-identifier}}});
488495
{{/isNullable}}
489496
{{#isNullable}}
490497
match {{{vendorExtensions.x-rust-param-identifier}}} {

0 commit comments

Comments
 (0)