chore: cleanup errors
This commit is contained in:
@@ -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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user