Update dependencies (actix-web 2)
[recipes.git] / backend / src / db.rs
1 use std::path::Path;
2 use std::fs;
3
4 //use rusqlite::types::ToSql;
5 //use rusqlite::{Connection, Result, NO_PARAMS};
6
7 const CURRENT_DB_VERSION: u32 = 1;
8
9 pub struct Connection {
10 con: rusqlite::Connection
11 }
12
13 impl Connection {
14 pub fn new() -> Connection {
15
16 // TODO: use a constant in consts module.
17 let data_dir = Path::new("data");
18
19 if !data_dir.exists() {
20 fs::DirBuilder::new().create(data_dir).unwrap();
21 }
22
23 Connection { con: rusqlite::Connection::open(data_dir.join("recipes.sqlite")).unwrap() }
24 }
25
26 pub fn create_or_update(self: &Self) -> rusqlite::Result<&str> {
27 //let connection = Connection::new();
28 // let mut stmt = connection.sqlite_con.prepare("SELECT * FROM versions ORDER BY date").unwrap();
29 // let mut stmt = connection.sqlite_con..prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='versions'").unwrap();
30
31 // Check the Database version.
32 let version = {
33 let stmt_version_table = self.con.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='versions'")?;
34 /*if stmt_version_table.query(rusqlite::NO_PARAMS)?.count() == 0 {
35 0
36 } else {
37 1 // let stmt_versions = self.con.prepare("SELECT number FROM [")
38 }*/
39 0
40 };
41
42 self.con.query_row(
43 "SELECT name FROM sqlite_master WHERE type='table' AND name='versions'",
44 rusqlite::NO_PARAMS,
45 |row| Ok(dbg!("test"))
46 )
47 }
48 }