Bring back handling RecordNotFound
Apparently this can also happen. It's all weird, but eh, let's just handle that too
This commit is contained in:
parent
7ec26c1bef
commit
a27e947059
|
@ -115,6 +115,7 @@ impl Bluesky {
|
||||||
let profile_output = match result {
|
let profile_output = match result {
|
||||||
Ok(profile_output) => profile_output,
|
Ok(profile_output) => profile_output,
|
||||||
Err(e) if is_missing_repo_error(&e) => return Ok(None),
|
Err(e) if is_missing_repo_error(&e) => return Ok(None),
|
||||||
|
Err(e) if is_record_not_found_error(&e) => return Ok(None),
|
||||||
Err(e) => return Err(e.into()),
|
Err(e) => return Err(e.into()),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -197,6 +198,29 @@ where
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn is_record_not_found_error<T>(error: &atrium_xrpc::error::Error<T>) -> bool
|
||||||
|
where
|
||||||
|
T: Debug,
|
||||||
|
{
|
||||||
|
use atrium_xrpc::error::{Error, ErrorResponseBody, XrpcError, XrpcErrorKind};
|
||||||
|
|
||||||
|
matches!(error,
|
||||||
|
Error::XrpcResponse(XrpcError {
|
||||||
|
status,
|
||||||
|
error:
|
||||||
|
Some(XrpcErrorKind::Undefined(ErrorResponseBody {
|
||||||
|
error: Some(error_code),
|
||||||
|
message: Some(error_message),
|
||||||
|
})),
|
||||||
|
}) if
|
||||||
|
// FIXME: This is this way instead of pattern matching because atrium's
|
||||||
|
// version of http is pegged at like 0.2.x and it does not
|
||||||
|
// re-export it so we have no way of referencing the real type
|
||||||
|
status.as_u16() == StatusCode::BAD_REQUEST.as_u16()
|
||||||
|
&& error_code == "RecordNotFound"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
fn is_unable_to_resolve_handle_error<T>(error: &atrium_xrpc::error::Error<T>) -> bool
|
fn is_unable_to_resolve_handle_error<T>(error: &atrium_xrpc::error::Error<T>) -> bool
|
||||||
where
|
where
|
||||||
T: Debug,
|
T: Debug,
|
||||||
|
|
Loading…
Reference in New Issue