From b2690609d7339c3517b5eb0308fe70a72e64c859 Mon Sep 17 00:00:00 2001 From: badnikhil Date: Mon, 7 Apr 2025 07:24:27 +0530 Subject: [PATCH 1/4] updated ureq --- lib/codegen/rust/ureq.dart | 2 +- test/codegen/rust_ureq_codegen_test.dart | 54 ++++++++++++------------ 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/lib/codegen/rust/ureq.dart b/lib/codegen/rust/ureq.dart index 0a8a0744..b9a2c68c 100644 --- a/lib/codegen/rust/ureq.dart +++ b/lib/codegen/rust/ureq.dart @@ -100,7 +100,7 @@ multipart/form-data; boundary={{boundary}}'''; final String kStringRequestEnd = """\n println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } diff --git a/test/codegen/rust_ureq_codegen_test.dart b/test/codegen/rust_ureq_codegen_test.dart index 8ef0cb69..42919c64 100644 --- a/test/codegen/rust_ureq_codegen_test.dart +++ b/test/codegen/rust_ureq_codegen_test.dart @@ -15,7 +15,7 @@ void main() { .call()?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -37,7 +37,7 @@ void main() { .call()?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -59,7 +59,7 @@ void main() { .call()?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -85,7 +85,7 @@ void main() { .call()?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -107,7 +107,7 @@ void main() { .call()?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -130,7 +130,7 @@ void main() { .call()?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -151,7 +151,7 @@ void main() { .call()?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -174,7 +174,7 @@ void main() { .call()?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -197,7 +197,7 @@ void main() { .call()?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -219,7 +219,7 @@ void main() { .call()?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -243,7 +243,7 @@ void main() { .call()?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -264,7 +264,7 @@ void main() { .call()?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -287,7 +287,7 @@ void main() { .call()?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -308,7 +308,7 @@ void main() { .call()?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -336,7 +336,7 @@ void main() { .send_string(payload)?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -366,7 +366,7 @@ void main() { .send_json(payload)?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -392,7 +392,7 @@ void main() { .send_json(payload)?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -469,7 +469,7 @@ fn main() -> Result<(), ureq::Error> { .send_bytes(&payload)?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -547,7 +547,7 @@ fn main() -> Result<(), ureq::Error> { .send_bytes(&payload)?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -616,7 +616,7 @@ fn main() -> Result<(), ureq::Error> { .send_bytes(&payload)?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -685,7 +685,7 @@ fn main() -> Result<(), ureq::Error> { .send_bytes(&payload)?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -761,7 +761,7 @@ fn main() -> Result<(), ureq::Error> { .send_bytes(&payload)?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -834,7 +834,7 @@ fn main() -> Result<(), ureq::Error> { .send_bytes(&payload)?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -860,7 +860,7 @@ fn main() -> Result<(), ureq::Error> { .send_json(payload)?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -888,7 +888,7 @@ fn main() -> Result<(), ureq::Error> { .send_json(payload)?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -911,7 +911,7 @@ fn main() -> Result<(), ureq::Error> { .call()?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } @@ -937,7 +937,7 @@ fn main() -> Result<(), ureq::Error> { .send_json(payload)?; println!("Response Status: {}", response.status()); - println!("Response: {}", response.into_string()?); + println!("Response: {}", response.into_body().read_to_string()?); Ok(()) } From 5dc04e02fbce57bed4ff85e48460a129068ddc32 Mon Sep 17 00:00:00 2001 From: Nikhil Date: Tue, 8 Apr 2025 02:50:07 +0530 Subject: [PATCH 2/4] fix --- lib/codegen/rust/ureq.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/codegen/rust/ureq.dart b/lib/codegen/rust/ureq.dart index b9a2c68c..27469f0d 100644 --- a/lib/codegen/rust/ureq.dart +++ b/lib/codegen/rust/ureq.dart @@ -24,8 +24,8 @@ fn main() -> Result<(), ureq::Error> { """; String kTemplateJson = """ - - let payload = ureq::json!({{body}}); + use serde_json::json; + let payload = json!({{body}}); """; From 6b0a22cd8b3194f696a6fae77b2392316d4f44ae Mon Sep 17 00:00:00 2001 From: Nikhil Date: Tue, 8 Apr 2025 02:51:23 +0530 Subject: [PATCH 3/4] header --- lib/codegen/rust/ureq.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/codegen/rust/ureq.dart b/lib/codegen/rust/ureq.dart index 27469f0d..e741a6c0 100644 --- a/lib/codegen/rust/ureq.dart +++ b/lib/codegen/rust/ureq.dart @@ -30,7 +30,7 @@ fn main() -> Result<(), ureq::Error> { """; String kTemplateHeaders = - """\n {% for key, val in headers -%}.set("{{key}}", "{{val}}"){% if not loop.last %}{{ '\n ' }}{% endif %}{%- endfor -%}"""; + """\n {% for key, val in headers -%}.header("{{key}}", "{{val}}"){% if not loop.last %}{{ '\n ' }}{% endif %}{%- endfor -%}"""; String kTemplateFormHeaderContentType = ''' multipart/form-data; boundary={{boundary}}'''; From b31f9d184b10e1fd3764ec0ce67a81e8d5dd4b04 Mon Sep 17 00:00:00 2001 From: Nikhil Date: Wed, 9 Apr 2025 05:03:59 +0530 Subject: [PATCH 4/4] tests added --- lib/codegen/rust/ureq.dart | 19 +++--- test/codegen/rust_ureq_codegen_test.dart | 74 ++++++++++++++---------- 2 files changed, 57 insertions(+), 36 deletions(-) diff --git a/lib/codegen/rust/ureq.dart b/lib/codegen/rust/ureq.dart index e741a6c0..6137f4fc 100644 --- a/lib/codegen/rust/ureq.dart +++ b/lib/codegen/rust/ureq.dart @@ -5,6 +5,9 @@ import 'package:jinja/jinja.dart' as jj; import '../../utils/utils.dart'; class RustUreqCodeGen { + final String kJsonImport = """ +use serde_json::json; +"""; final String kTemplateStart = """ {%- if isFormDataRequest -%} use std::io::Read; @@ -23,8 +26,7 @@ fn main() -> Result<(), ureq::Error> { """; - String kTemplateJson = """ - use serde_json::json; + String kTemplateJson = """\n let payload = json!({{body}}); """; @@ -90,7 +92,7 @@ multipart/form-data; boundary={{boundary}}'''; let payload = build_data_list(form_data_items); """; - String kStringRequestBody = """\n .send_string(payload)?;"""; + String kStringRequestBody = """\n .send(payload)?;"""; String kStringRequestForm = """\n .send_bytes(&payload)?;"""; @@ -117,12 +119,16 @@ multipart/form-data; boundary={{boundary}}'''; String uuid = getNewUuid(); String url = requestModel.url; - var rec = getValidRequestUri( url, requestModel.enabledParams, ); Uri? uri = rec.$1; + var method = requestModel.method; + var requestBody = requestModel.body; + if (requestModel.bodyContentType == ContentType.json && requestBody?.isNotEmpty == true){ + result += kJsonImport; + } if (uri != null) { var templateStartUrl = jj.Template(kTemplateStart); result += templateStartUrl.render({ @@ -130,9 +136,8 @@ multipart/form-data; boundary={{boundary}}'''; 'isFormDataRequest': requestModel.hasFormData, "method": requestModel.method.name.toLowerCase() }); - - var method = requestModel.method; - var requestBody = requestModel.body; + + if (kMethodsWithBody.contains(method) && requestBody != null) { var contentLength = utf8.encode(requestBody).length; if (contentLength > 0) { diff --git a/test/codegen/rust_ureq_codegen_test.dart b/test/codegen/rust_ureq_codegen_test.dart index 42919c64..9bf736b8 100644 --- a/test/codegen/rust_ureq_codegen_test.dart +++ b/test/codegen/rust_ureq_codegen_test.dart @@ -9,7 +9,8 @@ void main() { group('GET Request', () { test('GET 1', () { - const expectedCode = r"""fn main() -> Result<(), ureq::Error> { + const expectedCode = r""" +fn main() -> Result<(), ureq::Error> { let url = "https://api.apidash.dev"; let response = ureq::get(url) .call()?; @@ -103,7 +104,7 @@ void main() { const expectedCode = r"""fn main() -> Result<(), ureq::Error> { let url = "https://api.github.com/repos/foss42/apidash"; let response = ureq::get(url) - .set("User-Agent", "Test Agent") + .header("User-Agent", "Test Agent") .call()?; println!("Response Status: {}", response.status()); @@ -126,7 +127,7 @@ void main() { let url = "https://api.github.com/repos/foss42/apidash"; let response = ureq::get(url) .query("raw", "true") - .set("User-Agent", "Test Agent") + .header("User-Agent", "Test Agent") .call()?; println!("Response Status: {}", response.status()); @@ -170,7 +171,7 @@ void main() { let url = "https://api.github.com/repos/foss42/apidash"; let response = ureq::get(url) .query("raw", "true") - .set("User-Agent", "Test Agent") + .header("User-Agent", "Test Agent") .call()?; println!("Response Status: {}", response.status()); @@ -215,7 +216,7 @@ void main() { const expectedCode = r"""fn main() -> Result<(), ureq::Error> { let url = "https://api.apidash.dev/humanize/social"; let response = ureq::get(url) - .set("User-Agent", "Test Agent") + .header("User-Agent", "Test Agent") .call()?; println!("Response Status: {}", response.status()); @@ -239,7 +240,7 @@ void main() { let response = ureq::get(url) .query("num", "8700000") .query("digits", "3") - .set("User-Agent", "Test Agent") + .header("User-Agent", "Test Agent") .call()?; println!("Response Status: {}", response.status()); @@ -332,8 +333,8 @@ void main() { }"#; let response = ureq::post(url) - .set("content-type", "text/plain") - .send_string(payload)?; + .header("content-type", "text/plain") + .send(payload)?; println!("Response Status: {}", response.status()); println!("Response: {}", response.into_body().read_to_string()?); @@ -351,9 +352,12 @@ void main() { }); test('POST 2', () { - const expectedCode = r'''fn main() -> Result<(), ureq::Error> { + const expectedCode = r''' +use serde_json::json; +fn main() -> Result<(), ureq::Error> { let url = "https://api.apidash.dev/case/lower"; - let payload = ureq::json!({ + + let payload = json!({ "text": "I LOVE Flutter", "flag": null, "male": true, @@ -381,14 +385,17 @@ void main() { }); test('POST 3', () { - const expectedCode = r'''fn main() -> Result<(), ureq::Error> { + const expectedCode = r''' +use serde_json::json; +fn main() -> Result<(), ureq::Error> { let url = "https://api.apidash.dev/case/lower"; - let payload = ureq::json!({ + + let payload = json!({ "text": "I LOVE Flutter" }); let response = ureq::post(url) - .set("User-Agent", "Test Agent") + .header("User-Agent", "Test Agent") .send_json(payload)?; println!("Response Status: {}", response.status()); @@ -465,7 +472,7 @@ fn main() -> Result<(), ureq::Error> { let payload = build_data_list(form_data_items); let response = ureq::post(url) - .set("content-type", "multipart/form-data; boundary=test") + .header("content-type", "multipart/form-data; boundary=test") .send_bytes(&payload)?; println!("Response Status: {}", response.status()); @@ -542,8 +549,8 @@ fn main() -> Result<(), ureq::Error> { let payload = build_data_list(form_data_items); let response = ureq::post(url) - .set("User-Agent", "Test Agent") - .set("content-type", "multipart/form-data; boundary=test") + .header("User-Agent", "Test Agent") + .header("content-type", "multipart/form-data; boundary=test") .send_bytes(&payload)?; println!("Response Status: {}", response.status()); @@ -612,7 +619,7 @@ fn main() -> Result<(), ureq::Error> { let payload = build_data_list(form_data_items); let response = ureq::post(url) - .set("content-type", "multipart/form-data; boundary=test") + .header("content-type", "multipart/form-data; boundary=test") .send_bytes(&payload)?; println!("Response Status: {}", response.status()); @@ -681,7 +688,7 @@ fn main() -> Result<(), ureq::Error> { let payload = build_data_list(form_data_items); let response = ureq::post(url) - .set("content-type", "multipart/form-data; boundary=test") + .header("content-type", "multipart/form-data; boundary=test") .send_bytes(&payload)?; println!("Response Status: {}", response.status()); @@ -757,7 +764,7 @@ fn main() -> Result<(), ureq::Error> { let response = ureq::post(url) .query("size", "2") .query("len", "3") - .set("content-type", "multipart/form-data; boundary=test") + .header("content-type", "multipart/form-data; boundary=test") .send_bytes(&payload)?; println!("Response Status: {}", response.status()); @@ -828,9 +835,9 @@ fn main() -> Result<(), ureq::Error> { let response = ureq::post(url) .query("size", "2") .query("len", "3") - .set("User-Agent", "Test Agent") - .set("Keep-Alive", "true") - .set("content-type", "multipart/form-data; boundary=test") + .header("User-Agent", "Test Agent") + .header("Keep-Alive", "true") + .header("content-type", "multipart/form-data; boundary=test") .send_bytes(&payload)?; println!("Response Status: {}", response.status()); @@ -849,9 +856,11 @@ fn main() -> Result<(), ureq::Error> { group('PUT Request', () { test('PUT 1', () { - const expectedCode = r'''fn main() -> Result<(), ureq::Error> { + const expectedCode = r'''use serde_json::json; +fn main() -> Result<(), ureq::Error> { let url = "https://reqres.in/api/users/2"; - let payload = ureq::json!({ + + let payload = json!({ "name": "morpheus", "job": "zion resident" }); @@ -877,9 +886,12 @@ fn main() -> Result<(), ureq::Error> { group('PATCH Request', () { test('PATCH 1', () { - const expectedCode = r'''fn main() -> Result<(), ureq::Error> { + const expectedCode = r''' +use serde_json::json; +fn main() -> Result<(), ureq::Error> { let url = "https://reqres.in/api/users/2"; - let payload = ureq::json!({ + + let payload = json!({ "name": "marfeus", "job": "accountant" }); @@ -905,7 +917,8 @@ fn main() -> Result<(), ureq::Error> { group('DELETE Request', () { test('DELETE 1', () { - const expectedCode = r"""fn main() -> Result<(), ureq::Error> { + const expectedCode = r""" +fn main() -> Result<(), ureq::Error> { let url = "https://reqres.in/api/users/2"; let response = ureq::delete(url) .call()?; @@ -926,9 +939,12 @@ fn main() -> Result<(), ureq::Error> { }); test('DELETE 2', () { - const expectedCode = r'''fn main() -> Result<(), ureq::Error> { + const expectedCode = r''' +use serde_json::json; +fn main() -> Result<(), ureq::Error> { let url = "https://reqres.in/api/users/2"; - let payload = ureq::json!({ + + let payload = json!({ "name": "marfeus", "job": "accountant" });