MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / parse_error_body

Method parse_error_body

atomic-remote/src/storage.rs:221–236  ·  view source on GitHub ↗
(&self, status: u16, body: &str)

Source from the content-addressed store, hash-verified

219 }
220
221 fn parse_error_body(&self, status: u16, body: &str) -> RemoteError {
222 // Try to parse as ApiResponse first.
223 if let Ok(api_resp) = serde_json::from_str::<ApiResponse<serde_json::Value>>(body) {
224 if let Some(err) = api_resp.error {
225 return self.status_error(status, err.message);
226 }
227 }
228
229 // Some endpoints return a direct ApiError body instead of the
230 // ApiResponse envelope on validation/auth failures.
231 if let Ok(err) = serde_json::from_str::<crate::storage_types::ApiError>(body) {
232 return self.status_error(status, err.message);
233 }
234
235 RemoteError::server_error(status, format!("HTTP {}", status))
236 }
237
238 fn status_error(&self, status: u16, message: String) -> RemoteError {
239 match status {

Callers 5

deleteMethod · 0.80
handle_responseMethod · 0.80
parse_error_body_401Function · 0.80
parse_error_body_404Function · 0.80

Calls 1

status_errorMethod · 0.80

Tested by 3

parse_error_body_401Function · 0.64
parse_error_body_404Function · 0.64