summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 992147c..f99052f 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,4 +1,4 @@
-use magnus::{define_module, function, method, Error, Module, Object, Value, class};
+use magnus::{define_module, function, method, Error, Module, Object, Value, class, RHash, TryConvert};
use magnus::value::ReprValue;
use reqwest::{Client, Method, Response};
use std::collections::HashMap;
@@ -59,7 +59,7 @@ impl RustClient {
&self,
method_str: String,
url: String,
- _headers: Value, // Simplified - ignore headers for now
+ headers: Value,
body: String,
) -> Result<RustResponse, Error> {
let method = match method_str.to_uppercase().as_str() {
@@ -74,6 +74,15 @@ impl RustClient {
self.runtime.block_on(async {
let mut request_builder = self.client.request(method, &url);
+ // Add headers if provided
+ if let Ok(headers_hash) = RHash::from_value(headers) {
+ for (key, value) in headers_hash {
+ if let (Ok(key_str), Ok(value_str)) = (String::try_convert(key), String::try_convert(value)) {
+ request_builder = request_builder.header(&key_str, &value_str);
+ }
+ }
+ }
+
// Add body if not empty
if !body.is_empty() {
request_builder = request_builder.body(body);