/ src / matrix / commands / aoc / clear_cache.rs
clear_cache.rs
 1  use matrix_sdk::{
 2      Room,
 3      ruma::events::{
 4          reaction::ReactionEventContent, relation::Annotation,
 5          room::message::OriginalRoomMessageEvent,
 6      },
 7  };
 8  
 9  use crate::{
10      context::Context,
11      matrix::commands::{CommandError, CommandResult},
12  };
13  
14  pub async fn invoke(
15      event: &OriginalRoomMessageEvent,
16      room: &Room,
17      context: &Context,
18  ) -> CommandResult<()> {
19      if !context.config.matrix.admin_ids.contains(&event.sender) {
20          return Err(CommandError::PermissionDenied);
21      }
22  
23      context.aoc_client.clear_leaderboard_cache().await?;
24  
25      room.send(ReactionEventContent::new(Annotation::new(
26          event.event_id.clone(),
27          "✅️".into(),
28      )))
29      .await?;
30  
31      Ok(())
32  }