mutiny-rs 0.2.0

A Rust API wrapper for the Stoat chat platform.
Documentation
use crate::context::Context;
use crate::model::message::Message;
use crate::http::HttpError;

impl Context {
    pub async fn fetch_message(&self, channel_id: &str, message_id: &str, force: bool) -> Result<Message, HttpError> {
        if !force {
            if let Some(cached) = self.cache.messages.get(message_id).await {
                return Ok(cached);
            }
        }

        let message = self.http.fetch_message(channel_id, message_id).await?;

        self.cache.messages.insert(message.id.clone(), message.clone()).await;

        Ok(message)
    }

    pub async fn delete_message(&self, channel_id: &str, message_id: &str) -> Result<(), HttpError> {
        self.http.delete_message(channel_id, message_id).await?;

        self.cache.messages.invalidate(message_id).await;

        Ok(())
    }
    pub async fn delete_messages_bulk(&self, channel_id: &str, message_ids: Vec<String>) -> Result<(), HttpError> {
        self.http.delete_messages_bulk(channel_id, message_ids.clone()).await?;
        self.cache.remove_messages(message_ids).await;
        Ok(())
    }
}