This commit is contained in:
sam 2024-02-23 22:04:32 +01:00
parent 18b644d24b
commit b2c3a521e9
8 changed files with 115 additions and 9 deletions

View file

@ -165,9 +165,7 @@ async fn read(
tx.send(Payload::Hello {}).await.ok();
while let Some(msg) = receiver.next().await {
let msg = if let Ok(msg) = msg {
msg
} else {
let Ok(msg) = msg else {
return;
};
@ -289,10 +287,35 @@ async fn filter_events(
socket_state: Arc<RwLock<SocketState>>,
evt: &Dispatch,
) -> Result<(bool, Vec<String>)> {
// If we're not authenticated yet, don't send anything
if socket_state.read().await.instance.is_none() {
let Some(instance) = &socket_state.read().await.instance else {
return Ok((false, vec![]));
}
};
Ok((true, vec![]))
match evt {
Dispatch::MessageCreate {
id: _,
channel_id: _,
guild_id,
author: _,
content: _,
created_at: _,
} => {
let users = sqlx::query!(
r#"SELECT ARRAY(
SELECT u.remote_user_id FROM users u
JOIN guilds_users gu ON gu.user_id = u.id
WHERE u.instance_id = $1 AND gu.guild_id = $2
)"#,
instance.id,
guild_id
)
.fetch_one(&app_state.pool)
.await?;
if let Some(users) = users.array {
return Ok((users.len() > 0, users));
}
return Ok((false, vec![]));
}
}
}