aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/util/http/curl_downloader.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-06 19:47:36 +0900
committernsfisis <nsfisis@gmail.com>2026-06-06 19:47:36 +0900
commitaf4b9fcba1206e3fcc97fc243ffc674f85547942 (patch)
tree7066e219d80024150919316af900c666957a64fb /crates/shirabe/src/util/http/curl_downloader.rs
parentd9090c4c52fa29ee1569aedf8be858bf78001d7b (diff)
downloadphp-shirabe-af4b9fcba1206e3fcc97fc243ffc674f85547942.tar.gz
php-shirabe-af4b9fcba1206e3fcc97fc243ffc674f85547942.tar.zst
php-shirabe-af4b9fcba1206e3fcc97fc243ffc674f85547942.zip
refactor(http-response): take url directly instead of request map
Response only ever reads the url out of the request array, so accept it as a String directly. With url always present the 'url key missing' LogicException can no longer fire, so Response::new and CurlResponse::new return Self instead of a double Result. Also drops the unused from_php_mixed/to_php_mixed stubs and the request_to_map helper. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/util/http/curl_downloader.rs')
-rw-r--r--crates/shirabe/src/util/http/curl_downloader.rs76
1 files changed, 26 insertions, 50 deletions
diff --git a/crates/shirabe/src/util/http/curl_downloader.rs b/crates/shirabe/src/util/http/curl_downloader.rs
index b86564f..9d572fa 100644
--- a/crates/shirabe/src/util/http/curl_downloader.rs
+++ b/crates/shirabe/src/util/http/curl_downloader.rs
@@ -1060,31 +1060,19 @@ impl CurlDownloader {
);
}
contents = c;
- response = Some(
- CurlResponse::new(
- {
- let mut m: IndexMap<String, PhpMixed> = IndexMap::new();
- m.insert(
- "url".to_string(),
- PhpMixed::String(
- job.get("url")
- .and_then(|v| v.as_string())
- .unwrap_or("")
- .to_string(),
- ),
- );
- m
- },
- status_code,
- headers.clone().unwrap_or_default(),
- contents.as_string().map(|s| s.to_string()),
- progress
- .iter()
- .map(|(k, v)| (k.clone(), (**v).clone()))
- .collect(),
- )?
- .map_err(|e| anyhow::anyhow!(e.message))?,
- );
+ response = Some(CurlResponse::new(
+ job.get("url")
+ .and_then(|v| v.as_string())
+ .unwrap_or("")
+ .to_string(),
+ status_code,
+ headers.clone().unwrap_or_default(),
+ contents.as_string().map(|s| s.to_string()),
+ progress
+ .iter()
+ .map(|(k, v)| (k.clone(), (**v).clone()))
+ .collect(),
+ ));
self.io.write_error3(
&format!(
"[{}] {}",
@@ -1139,31 +1127,19 @@ impl CurlDownloader {
);
}
- response = Some(
- CurlResponse::new(
- {
- let mut m: IndexMap<String, PhpMixed> = IndexMap::new();
- m.insert(
- "url".to_string(),
- PhpMixed::String(
- job.get("url")
- .and_then(|v| v.as_string())
- .unwrap_or("")
- .to_string(),
- ),
- );
- m
- },
- status_code,
- headers.clone().unwrap_or_default(),
- contents.as_string().map(|s| s.to_string()),
- progress
- .iter()
- .map(|(k, v)| (k.clone(), (**v).clone()))
- .collect(),
- )?
- .map_err(|e| anyhow::anyhow!(e.message))?,
- );
+ response = Some(CurlResponse::new(
+ job.get("url")
+ .and_then(|v| v.as_string())
+ .unwrap_or("")
+ .to_string(),
+ status_code,
+ headers.clone().unwrap_or_default(),
+ contents.as_string().map(|s| s.to_string()),
+ progress
+ .iter()
+ .map(|(k, v)| (k.clone(), (**v).clone()))
+ .collect(),
+ ));
self.io.write_error3(
&format!(
"[{}] {}",