chore: cleanup errors

This commit is contained in:
Zomatree
2025-07-31 10:47:04 +01:00
parent d7cf809424
commit 789dedd9f1
3 changed files with 29 additions and 26 deletions

View File

@@ -38,16 +38,22 @@ impl ProtocolConfiguration {
match self.format { match self.format {
ProtocolFormat::Json => { ProtocolFormat::Json => {
if let Message::Text(text) = msg { if let Message::Text(text) = msg {
serde_json::from_str(text).to_internal_error() // Log the error in-case we make a breaking change to the payload
serde_json::from_str(text)
.capture_error()
.map_err(|_| create_error!(UnprocessableEntity))
} else { } else {
Err(create_error!(InternalError)) Err(create_error!(UnprocessableEntity))
} }
} }
ProtocolFormat::Msgpack => { ProtocolFormat::Msgpack => {
if let Message::Binary(buf) = msg { if let Message::Binary(buf) = msg {
rmp_serde::from_slice(buf).to_internal_error() rmp_serde::from_slice(buf)
.capture_error()
.map_err(|_| create_error!(UnprocessableEntity))
} else { } else {
Err(create_error!(InternalError)) Err(create_error!(UnprocessableEntity))
} }
} }
} }

View File

@@ -488,8 +488,8 @@ impl Message {
| Channel::VoiceChannel { ref server, .. } => { | Channel::VoiceChannel { ref server, .. } => {
let mentions_vec = Vec::from_iter(user_mentions.iter().cloned()); let mentions_vec = Vec::from_iter(user_mentions.iter().cloned());
let valid_members = db.fetch_members(server.as_str(), &mentions_vec[..]).await; let valid_members = db.fetch_members(server.as_str(), &mentions_vec[..]).await?;
if let Ok(valid_members) = valid_members {
let valid_mentions = HashSet::<&String, RandomState>::from_iter( let valid_mentions = HashSet::<&String, RandomState>::from_iter(
valid_members.iter().map(|m| &m.id.user), valid_members.iter().map(|m| &m.id.user),
); );
@@ -509,10 +509,7 @@ impl Message {
user_mentions user_mentions
.retain(|m| *member_channel_view_perms.get(m).unwrap_or(&false)); .retain(|m| *member_channel_view_perms.get(m).unwrap_or(&false));
} }
} else {
revolt_config::capture_error(&valid_members.unwrap_err());
return Err(create_error!(InternalError));
}
} }
Channel::SavedMessages { .. } => { Channel::SavedMessages { .. } => {
user_mentions.clear(); user_mentions.clear();

View File

@@ -38,7 +38,7 @@ impl<'r> FromRequest<'r> for User {
if let Some(user) = user { if let Some(user) = user {
Outcome::Success(user.clone()) Outcome::Success(user.clone())
} else { } else {
request.local_cache(|| Some(create_error!(DuplicateNonce))); request.local_cache(|| Some(create_error!(InvalidSession)));
Outcome::Error((Status::Unauthorized, authifier::Error::InvalidSession)) Outcome::Error((Status::Unauthorized, authifier::Error::InvalidSession))
} }
} }