Files
escarmouche/src/event_processor.rs
T
2023-02-24 08:52:50 -05:00

24 lines
814 B
Rust

use rusqlite::{Connection, Transaction};
use crate::db::users::create_user;
use crate::events::{CreateNewSecurity, CreateNewUser, Event};
use crate::util::{CustomResult, Error};
fn process_bogus_event(tx: &Transaction, event: CreateNewSecurity) -> CustomResult<()> {
Ok(())
}
fn process_create_new_user_event(tx: &mut Transaction, event: CreateNewUser) -> CustomResult<()> {
create_user(&tx, &event.name, &event.public_key)?;
Ok(())
}
pub fn process_event(conn: &mut Connection, event: Event) -> CustomResult<()> {
let mut tx = conn.transaction().map_err(Error::SqlError)?;
match event {
Event::CreateNewSecurity(e) => process_bogus_event(&mut tx, e)?,
Event::CreateNewUser(e) => process_create_new_user_event(&mut tx, e)?,
};
tx.commit().map_err(Error::SqlError)
}