matrix-bridge-teams 0.1.0

A bridge between Matrix and Microsoft Teams written in Rust
use anyhow::Result;
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MatrixMessage {
    pub event_id: String,
    pub room_id: String,
    pub sender: String,
    pub content: MessageContent,
    pub origin_server_ts: u64,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MessageContent {
    pub msgtype: String,
    pub body: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub formatted_body: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub format: Option<String>,
}

pub struct MessageHandler;

impl MessageHandler {
    pub fn new() -> Self {
        Self
    }

    pub async fn process_incoming_message(&self, message: MatrixMessage) -> Result<()> {
        Ok(())
    }

    pub async fn format_for_teams(&self, message: &MatrixMessage) -> String {
        message.content.body.clone()
    }
}