Started to implement proper event processing.
This commit is contained in:
1 parent
af11915a52
commit
238cd9f2da
7 files changed
+75
-88
No files matched your search
+12
-43
@@ -1,52 +1,21 @@
|
||||
use std::borrow::Borrow;
|
||||
|
||||
use std::fs::File;
|
||||
|
||||
use std::path::PathBuf;
|
||||
use rusqlite::{Connection, Transaction};
|
||||
|
||||
use crate::events::{Bogus, CreateNewUser, Event};
|
||||
use crate::util::{CustomResult, Error};
|
||||
|
||||
use rusqlite::Connection;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Deserialize, Serialize, Debug, PartialEq)]
|
||||
struct CacheChequeEvent {
|
||||
account: i64,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Debug, PartialEq)]
|
||||
enum Event {
|
||||
CacheCheque(CacheChequeEvent),
|
||||
}
|
||||
|
||||
fn process_event_file(_conn: &mut Connection, _file: File) -> CustomResult<()> {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
pub fn process_event_files<I>(conn: &mut Connection, paths: I) -> CustomResult<()>
|
||||
where
|
||||
I: Iterator,
|
||||
I::Item: Borrow<PathBuf>,
|
||||
{
|
||||
for path in paths {
|
||||
let file = File::open(path.borrow()).map_err(Error::IOError)?;
|
||||
process_event_file(conn, file)?;
|
||||
}
|
||||
fn process_bogus_event(tx: &Transaction, event: Bogus) -> CustomResult<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
mod test {
|
||||
use tempfile::tempfile;
|
||||
use super::*;
|
||||
|
||||
|
||||
|
||||
fn process_create_new_user_event(tx: &Transaction, event: CreateNewUser) -> CustomResult<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_basic() -> CustomResult<()> {
|
||||
let file = tempfile().unwrap();
|
||||
let mut conn = Connection::open_in_memory().unwrap();
|
||||
let ret = process_event_file(&mut conn, file);
|
||||
ret
|
||||
|
||||
pub fn process_event(conn: &mut Connection, event: Event) -> CustomResult<()> {
|
||||
let tx = conn.transaction().map_err(Error::SqlError)?;
|
||||
match event {
|
||||
Event::Bogus(e) => process_bogus_event(&tx, e),
|
||||
Event::CreateNewUser(e) => process_create_new_user_event(&tx, e),
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user