发行包上传 HTTP 兜底先过滤 message 再退 code
read_upload_state / upload_chunk(retryable、fatal) / complete_upload 四处 .or(code).filter 顺序反了 空 message 会把服务端 code 一起吞掉,统一改成 filter(message).or_else(|| code.filter(...))
This commit is contained in:
@@ -90,8 +90,8 @@ async fn read_upload_state(
|
||||
if status >= 400 {
|
||||
let (code, message) = parse_server_error(status, &body);
|
||||
return Err(message
|
||||
.or(code)
|
||||
.filter(|detail| !detail.trim().is_empty())
|
||||
.or_else(|| code.filter(|detail| !detail.trim().is_empty()))
|
||||
.unwrap_or_else(|| format!("HTTP {status}")));
|
||||
}
|
||||
let parsed: Value = serde_json::from_str(&body)
|
||||
@@ -145,8 +145,8 @@ async fn upload_chunk(
|
||||
let (code, message) = parse_server_error(status, &text);
|
||||
return Err(ChunkUploadError::Retryable(
|
||||
message
|
||||
.or(code)
|
||||
.filter(|detail| !detail.trim().is_empty())
|
||||
.or_else(|| code.filter(|detail| !detail.trim().is_empty()))
|
||||
.unwrap_or_else(|| format!("HTTP {status}")),
|
||||
));
|
||||
}
|
||||
@@ -154,8 +154,8 @@ async fn upload_chunk(
|
||||
let (code, message) = parse_server_error(status, &text);
|
||||
return Err(ChunkUploadError::Fatal(
|
||||
message
|
||||
.or(code)
|
||||
.filter(|detail| !detail.trim().is_empty())
|
||||
.or_else(|| code.filter(|detail| !detail.trim().is_empty()))
|
||||
.unwrap_or_else(|| format!("HTTP {status}")),
|
||||
));
|
||||
}
|
||||
@@ -198,8 +198,8 @@ async fn complete_upload(
|
||||
if status >= 400 {
|
||||
let (code, message) = parse_server_error(status, &text);
|
||||
return Err(message
|
||||
.or(code)
|
||||
.filter(|detail| !detail.trim().is_empty())
|
||||
.or_else(|| code.filter(|detail| !detail.trim().is_empty()))
|
||||
.unwrap_or_else(|| format!("HTTP {status}")));
|
||||
}
|
||||
let parsed: Value =
|
||||
|
||||
Reference in New Issue
Block a user