feat: inspect user data
This commit is contained in:
@@ -2,7 +2,7 @@ use std::sync::LazyLock;
|
||||
|
||||
use async_compression::futures::bufread::BrotliDecoder;
|
||||
use capnp::message::ReaderOptions;
|
||||
use futures::AsyncReadExt;
|
||||
use futures::{AsyncReadExt, TryStreamExt};
|
||||
use opendal::ErrorKind;
|
||||
use snafu::{OptionExt, Snafu};
|
||||
use twilight_model::{
|
||||
@@ -175,4 +175,48 @@ pub async fn handle(state: State, interaction: Interaction) {
|
||||
.flags(MessageFlags::EPHEMERAL)
|
||||
.await
|
||||
.expect("TODO");
|
||||
|
||||
let mut user_id_stream = state.user_data_manager.list().await.expect("TODO");
|
||||
|
||||
while let Some(user_id) = user_id_stream.try_next().await.expect("TODO") {
|
||||
let (consent, notification_script) = state
|
||||
.user_data_manager
|
||||
.with(user_id, |user_data| {
|
||||
let consent = user_data.get_voice_recording_consent().unwrap();
|
||||
let notification_script = user_data.has_notification_script().then_some(
|
||||
user_data
|
||||
.get_notification_script()
|
||||
.expect("TODO")
|
||||
.to_string()
|
||||
.expect("TODO"),
|
||||
);
|
||||
|
||||
(consent, notification_script)
|
||||
})
|
||||
.await
|
||||
.expect("TODO");
|
||||
|
||||
let user_mention = format!("<@{user_id}>");
|
||||
|
||||
state
|
||||
.discord_client
|
||||
.interaction(state.discord_application_id)
|
||||
.create_followup(&interaction.token)
|
||||
.embeds(&[EmbedBuilder::new()
|
||||
.title(user_mention)
|
||||
.field(EmbedFieldBuilder::new("Consent", format!("{consent:?}")).build())
|
||||
.field(
|
||||
EmbedFieldBuilder::new(
|
||||
"Notification Script",
|
||||
format!("{notification_script:?}"),
|
||||
)
|
||||
.build(),
|
||||
)
|
||||
.validate()
|
||||
.unwrap()
|
||||
.build()])
|
||||
.flags(MessageFlags::EPHEMERAL)
|
||||
.await
|
||||
.expect("TODO");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user