backend: Move fn init_conn into handler struct
This commit is contained in:
parent
40b2333767
commit
545b5a3a1b
1 changed files with 43 additions and 43 deletions
|
@ -37,7 +37,7 @@ impl DBHandler {
|
||||||
DBHandlerRequest::GetID(player_tx) => {
|
DBHandlerRequest::GetID(player_tx) => {
|
||||||
// got request to create new player, create new player
|
// got request to create new player, create new player
|
||||||
let mut player_id: u32 = thread_rng().gen();
|
let mut player_id: u32 = thread_rng().gen();
|
||||||
let conn_result = init_conn(&self.sqlite_path, DBFirstRun::NotFirstRun);
|
let conn_result = self.get_conn(DBFirstRun::NotFirstRun);
|
||||||
if let Err(e) = conn_result {
|
if let Err(e) = conn_result {
|
||||||
println!("Failed to get sqlite db connection: {:?}", e);
|
println!("Failed to get sqlite db connection: {:?}", e);
|
||||||
self.shutdown_tx.send(()).ok();
|
self.shutdown_tx.send(()).ok();
|
||||||
|
@ -80,52 +80,52 @@ impl DBHandler {
|
||||||
|
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
fn init_conn(sqlite_path: &str, first_run: DBFirstRun) -> Result<Connection, String> {
|
fn get_conn(&self, first_run: DBFirstRun) -> Result<Connection, String> {
|
||||||
if let Ok(conn) = Connection::open(sqlite_path) {
|
if let Ok(conn) = Connection::open(&self.sqlite_path) {
|
||||||
conn.execute("PRAGMA foreign_keys = ON;", [])
|
conn.execute("PRAGMA foreign_keys = ON;", [])
|
||||||
.map_err(|e| format!("Should be able to handle \"foreign_keys\": {:?}", e))?;
|
.map_err(|e| format!("Should be able to handle \"foreign_keys\": {:?}", e))?;
|
||||||
let result = conn.execute(
|
let result = conn.execute(
|
||||||
"
|
"
|
||||||
CREATE TABLE players (id INTEGER PRIMARY KEY NOT NULL,
|
CREATE TABLE players (id INTEGER PRIMARY KEY NOT NULL,
|
||||||
date_added TEXT NOT NULL,
|
date_added TEXT NOT NULL,
|
||||||
game_id INTEGER,
|
game_id INTEGER,
|
||||||
FOREIGN KEY(game_id) REFERENCES games(id) ON DELETE CASCADE);
|
FOREIGN KEY(game_id) REFERENCES games(id) ON DELETE CASCADE);
|
||||||
",
|
",
|
||||||
[],
|
[],
|
||||||
);
|
);
|
||||||
if result.is_ok() {
|
if result.is_ok() {
|
||||||
if first_run == DBFirstRun::FirstRun {
|
if first_run == DBFirstRun::FirstRun {
|
||||||
println!("Created \"players\" table");
|
println!("Created \"players\" table");
|
||||||
|
}
|
||||||
|
} else if first_run == DBFirstRun::FirstRun {
|
||||||
|
println!("\"players\" table exists");
|
||||||
}
|
}
|
||||||
} else if first_run == DBFirstRun::FirstRun {
|
|
||||||
println!("\"players\" table exists");
|
|
||||||
}
|
|
||||||
|
|
||||||
let result = conn.execute(
|
let result = conn.execute(
|
||||||
"
|
"
|
||||||
CREATE TABLE games (id INTEGER PRIMARY KEY NOT NULL,
|
CREATE TABLE games (id INTEGER PRIMARY KEY NOT NULL,
|
||||||
cyan_player INTEGER UNIQUE,
|
cyan_player INTEGER UNIQUE,
|
||||||
magenta_player INTEGER UNIQUE,
|
magenta_player INTEGER UNIQUE,
|
||||||
date_added TEXT NOT NULL,
|
date_added TEXT NOT NULL,
|
||||||
board TEXT NOT NULL,
|
board TEXT NOT NULL,
|
||||||
status INTEGER NOT NULL,
|
status INTEGER NOT NULL,
|
||||||
FOREIGN KEY(cyan_player) REFERENCES players (id),
|
FOREIGN KEY(cyan_player) REFERENCES players (id),
|
||||||
FOREIGN KEY(magenta_player) REFERENCES players (id));
|
FOREIGN KEY(magenta_player) REFERENCES players (id));
|
||||||
",
|
",
|
||||||
[],
|
[],
|
||||||
);
|
);
|
||||||
if result.is_ok() {
|
if result.is_ok() {
|
||||||
if first_run == DBFirstRun::FirstRun {
|
if first_run == DBFirstRun::FirstRun {
|
||||||
println!("Created \"games\" table");
|
println!("Created \"games\" table");
|
||||||
|
}
|
||||||
|
} else if first_run == DBFirstRun::FirstRun {
|
||||||
|
println!("\"games\" table exists");
|
||||||
}
|
}
|
||||||
} else if first_run == DBFirstRun::FirstRun {
|
Ok(conn)
|
||||||
println!("\"games\" table exists");
|
} else {
|
||||||
|
Err(String::from("Failed to open connection"))
|
||||||
}
|
}
|
||||||
Ok(conn)
|
|
||||||
} else {
|
|
||||||
Err(String::from("Failed to open connection"))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ pub fn start_db_handler_thread(
|
||||||
};
|
};
|
||||||
thread::spawn(move || {
|
thread::spawn(move || {
|
||||||
// temporarily get conn which should initialize on first setup of db
|
// temporarily get conn which should initialize on first setup of db
|
||||||
if let Ok(_conn) = init_conn(&handler.sqlite_path, DBFirstRun::FirstRun) {
|
if let Ok(_conn) = handler.get_conn(DBFirstRun::FirstRun) {
|
||||||
} else {
|
} else {
|
||||||
println!("ERROR: Failed init sqlite db connection");
|
println!("ERROR: Failed init sqlite db connection");
|
||||||
handler.shutdown_tx.send(()).ok();
|
handler.shutdown_tx.send(()).ok();
|
||||||
|
|
Loading…
Reference in a new issue