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) }