matrix-bridge-teams 0.1.0

A bridge between Matrix and Microsoft Teams written in Rust
pub mod message_flow;
pub mod user_sync;
pub mod room_sync;
pub mod attachment_handler;

use std::sync::Arc;

use anyhow::Result;

use crate::db::DatabaseManager;
use crate::matrix::MatrixAppservice;
use crate::teams::TeamsClient;

pub struct BridgeCore {
    matrix_client: Arc<MatrixAppservice>,
    teams_client: Arc<TeamsClient>,
    db_manager: Arc<DatabaseManager>,
    message_flow: message_flow::MessageFlow,
    user_sync: user_sync::UserSync,
    room_sync: room_sync::RoomSync,
}

impl BridgeCore {
    pub fn new(
        matrix_client: Arc<MatrixAppservice>,
        teams_client: Arc<TeamsClient>,
        db_manager: Arc<DatabaseManager>,
    ) -> Self {
        Self {
            matrix_client,
            teams_client,
            db_manager,
            message_flow: message_flow::MessageFlow::new(),
            user_sync: user_sync::UserSync::new(),
            room_sync: room_sync::RoomSync::new(),
        }
    }

    pub async fn start(&self) -> Result<()> {
        Ok(())
    }
}