feat: replace vars in urls from OS environment

This commit is contained in:
əlemi 2023-06-15 16:23:48 +02:00
parent d704610357
commit 3040556976
Signed by: alemi
GPG key ID: A4895B84D311642C

View file

@ -18,13 +18,20 @@ impl IntoRequest for v2_1_0::RequestClass {
&self.method.as_ref().unwrap_or(&"GET".into()).as_bytes() // TODO lol?
).unwrap_or(reqwest::Method::GET); // TODO throw an error rather than replacing it silently
let url_str = match &self.url {
Some(v2_1_0::Url::String(x)) => x,
Some(v2_1_0::Url::UrlClass(v2_1_0::UrlClass { raw: Some(x), .. })) => x,
let mut url_str = match &self.url {
Some(v2_1_0::Url::String(x)) => x.clone(),
Some(v2_1_0::Url::UrlClass(v2_1_0::UrlClass { raw: Some(x), .. })) => x.clone(),
// TODO compose URL from UrlClass rather than only accepting those with raw set
_ => "http://localhost",
_ => "http://localhost".into(),
};
for (k, v) in std::env::vars() {
let key = format!("{{{{{}}}}}", k);
if url_str.contains(&key) {
url_str = url_str.replace(&key, &v);
}
}
let url = reqwest::Url::from_str(&url_str).unwrap();
let mut out = reqwest::Client::new().request(method, url);