Skip to content

Commit 832f974

Browse files
authored
Merge pull request #17 from golemcloud/fix-headers-handling
fix headers handling
2 parents 4ddd70c + ba7b820 commit 832f974

File tree

2 files changed

+39
-31
lines changed

2 files changed

+39
-31
lines changed

src/rust/client_gen.rs

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -745,17 +745,6 @@ fn render_method_implementation(method: &Method, error_kind: &ErrorKind) -> Rust
745745

746746
let no_headers = header_setters.is_empty();
747747

748-
#[rustfmt::skip]
749-
let headers = unit() +
750-
line(unit() + "let mut headers = " + rust_name("reqwest::header", "HeaderMap") + "::new();") +
751-
NewLine +
752-
header_setters.into_iter().map(|l| l + NewLine).reduce(|acc, e| acc + e). unwrap_or_else(unit) +
753-
NewLine +
754-
line("request = request.headers(headers);") +
755-
NewLine;
756-
757-
let headers = if no_headers { unit() } else { headers };
758-
759748
let headers_vec = if no_headers {
760749
unit()
761750
} else {
@@ -791,24 +780,37 @@ fn render_method_implementation(method: &Method, error_kind: &ErrorKind) -> Rust
791780

792781
let endpoint_log = unit() + r#", endpoint=""# + &method.original_path + r#"""#;
793782

794-
let logs = unit()
795-
+ line("{")
796-
+ indented(
797-
headers_vec
798-
+ line(
799-
unit()
800-
+ "tracing::info!("
801-
+ method_log
802-
+ endpoint_log
803-
+ ", url=url.to_string()"
804-
+ headers_log
805-
+ body_log
806-
+ r#", ""#
807-
+ &method.name
808-
+ r#"");"#,
809-
),
810-
)
811-
+ line("}");
783+
let logs = headers_vec
784+
+ line(
785+
unit()
786+
+ "tracing::info!("
787+
+ method_log
788+
+ endpoint_log
789+
+ ", url=url.to_string()"
790+
+ headers_log
791+
+ body_log
792+
+ r#", ""#
793+
+ &method.name
794+
+ r#"");"#,
795+
);
796+
797+
#[rustfmt::skip]
798+
let headers_and_logs =
799+
if no_headers {
800+
logs
801+
} else {
802+
unit() +
803+
line(unit() + "let mut headers = " + rust_name("reqwest::header", "HeaderMap") + "::new();") +
804+
NewLine +
805+
header_setters.into_iter().map(|l| l + NewLine).reduce(|acc, e| acc + e). unwrap_or_else(unit) +
806+
NewLine +
807+
line("{") +
808+
indented(logs) +
809+
line("}") +
810+
NewLine +
811+
line("request = request.headers(headers);") +
812+
NewLine
813+
};
812814

813815
let body_setter = match body_param {
814816
None => unit(),
@@ -890,8 +892,7 @@ fn render_method_implementation(method: &Method, error_kind: &ErrorKind) -> Rust
890892
line(unit() + "." + &method.http_method + "(url.clone());")
891893
) +
892894
NewLine +
893-
headers +
894-
logs +
895+
headers_and_logs +
895896
NewLine +
896897
line("if let Some(token) = self.context.bearer_token() {") +
897898
indented(

src/rust/error_gen.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ pub fn error_gen() -> Module {
2222
pub enum Error<T> {
2323
Item(T),
2424
Reqwest(reqwest::Error),
25+
ReqwestHeader(reqwest::header::InvalidHeaderValue),
2526
Serde(serde_json::Error),
2627
Unexpected {
2728
code: u16,
@@ -46,6 +47,12 @@ pub fn error_gen() -> Module {
4647
Error::Serde(value)
4748
}
4849
}
50+
51+
impl<T> From<reqwest::header::InvalidHeaderValue> for Error<T> {
52+
fn from(value: reqwest::header::InvalidHeaderValue) -> Self {
53+
Error::ReqwestHeader(value)
54+
}
55+
}
4956
"#};
5057

5158
Module {

0 commit comments

Comments
 (0)