matrix-bridge-teams 0.1.0

A bridge between Matrix and Microsoft Teams written in Rust
use anyhow::Result;

use crate::db::DatabaseManager;
use crate::teams::TeamsUser;

pub struct UserSync {
    db: Option<DatabaseManager>,
}

impl UserSync {
    pub fn new() -> Self {
        Self { db: None }
    }

    pub async fn sync_teams_user(&self, teams_user: &TeamsUser) -> Result<String> {
        let matrix_user_id = format!("@_teams_{}:localhost", teams_user.id);
        Ok(matrix_user_id)
    }

    pub async fn get_or_create_matrix_user(
        &self,
        teams_user: &TeamsUser,
    ) -> Result<String> {
        let matrix_user_id = self.sync_teams_user(teams_user).await?;
        Ok(matrix_user_id)
    }

    pub async fn update_user_info(
        &self,
        matrix_user_id: &str,
        teams_user: &TeamsUser,
    ) -> Result<()> {
        Ok(())
    }
}