diff options
Diffstat (limited to 'crates/shirabe/src/util/http_downloader.rs')
| -rw-r--r-- | crates/shirabe/src/util/http_downloader.rs | 48 |
1 files changed, 8 insertions, 40 deletions
diff --git a/crates/shirabe/src/util/http_downloader.rs b/crates/shirabe/src/util/http_downloader.rs index b33ed58..5d0eae6 100644 --- a/crates/shirabe/src/util/http_downloader.rs +++ b/crates/shirabe/src/util/http_downloader.rs @@ -388,10 +388,7 @@ impl HttpDownloader { let headers = rfs.get_last_headers().to_vec(); let code = RemoteFilesystem::find_status_code(&headers); let body = Some(format!("{}~", copy_to)); - match Response::new(Self::request_to_map(&request), code, headers, body)? { - Ok(r) => Ok(r), - Err(e) => Err(e.into()), - } + Ok(Response::new(request.url.clone(), code, headers, body)) } else { let body = match rfs.get_contents(&origin, &url, false, options.clone())? { GetResult::Content(s) => Some(s), @@ -399,10 +396,7 @@ impl HttpDownloader { }; let headers = rfs.get_last_headers().to_vec(); let code = RemoteFilesystem::find_status_code(&headers); - match Response::new(Self::request_to_map(&request), code, headers, body)? { - Ok(r) => Ok(r), - Err(e) => Err(e.into()), - } + Ok(Response::new(request.url.clone(), code, headers, body)) } })() }; @@ -410,30 +404,6 @@ impl HttpDownloader { self.settle_job(id, result); } - /// PHP `new Response($job['request'], ...)` is fed the whole request array; reproduce it. - fn request_to_map(request: &Request) -> IndexMap<String, PhpMixed> { - let mut m: IndexMap<String, PhpMixed> = IndexMap::new(); - m.insert("url".to_string(), PhpMixed::String(request.url.clone())); - m.insert( - "options".to_string(), - PhpMixed::Array( - request - .options - .iter() - .map(|(k, v)| (k.clone(), Box::new(v.clone()))) - .collect(), - ), - ); - m.insert( - "copyTo".to_string(), - match &request.copy_to { - Some(s) => PhpMixed::String(s.clone()), - None => PhpMixed::Null, - }, - ); - m - } - /// Applies the effect of PHP's promise `.then` handlers: records the response/exception, /// transitions the job status and decrements the running-job counter. fn settle_job(&mut self, id: i64, result: anyhow::Result<Response>) { @@ -508,14 +478,12 @@ impl HttpDownloader { } }; if has_if_modified_since { - let mut req_map: IndexMap<String, PhpMixed> = IndexMap::new(); - req_map.insert("url".to_string(), PhpMixed::String(url.clone())); - let response = - match Response::new(req_map, Some(304), Vec::new(), Some(String::new())) { - Ok(Ok(r)) => Ok(r), - Ok(Err(e)) => Err(e.into()), - Err(e) => Err(e), - }; + let response = Ok(Response::new( + url.clone(), + Some(304), + Vec::new(), + Some(String::new()), + )); self.settle_job(id, response); } else { let mut e = TransportException::new( |
