X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=backend%2Fsrc%2Fdb.rs;h=6458c7eb7308d384a695f7af38893d0c0e2fb821;hb=HEAD;hp=a4a0d9700492903a448af54acafb013d28b6cac5;hpb=e2e54b8f43015738af860b005825dc809f5275ab;p=recipes.git diff --git a/backend/src/db.rs b/backend/src/db.rs deleted file mode 100644 index a4a0d97..0000000 --- a/backend/src/db.rs +++ /dev/null @@ -1,100 +0,0 @@ -use std::path::Path; -use std::fs; - -//use rusqlite::types::ToSql; -//use rusqlite::{Connection, Result, NO_PARAMS}; - -//extern crate r2d2; -//extern crate r2d2_sqlite; -//extern crate rusqlite; - -use r2d2_sqlite::SqliteConnectionManager; -use r2d2::Pool; - - -use super::consts; - -const CURRENT_DB_VERSION: u32 = 1; - -pub struct Connection { - //con: rusqlite::Connection - pool: Pool -} - -pub struct Recipe { - pub title: String, - pub id: i32, -} - -impl Connection { - pub fn new() -> Connection { - - let data_dir = Path::new(consts::DB_DIRECTORY); - - if !data_dir.exists() { - fs::DirBuilder::new().create(data_dir).unwrap(); - } - - let manager = SqliteConnectionManager::file("file.db"); - let pool = r2d2::Pool::new(manager).unwrap(); - - let connection = Connection { pool }; - connection.create_or_update(); - connection - } - - fn create_or_update(self: &Self) { - // let connection = Connection::new(); - // let mut stmt = connection.sqlite_con.prepare("SELECT * FROM versions ORDER BY date").unwrap(); - // let mut stmt = connection.sqlite_con..prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='versions'").unwrap(); - - // Check the Database version. - let con = self.pool.get().unwrap(); - - let version = { - match - con.query_row( - "SELECT [name] FROM [sqlite_master] WHERE [type] = 'table' AND [name] = 'Version'", - rusqlite::NO_PARAMS, - |row| row.get::(0) - ) { - - Ok(_) => con.query_row("SELECT [version] FROM [Version]", rusqlite::NO_PARAMS, |row| row.get(0)).unwrap_or_default(), - Err(_) => 0 - } - }; - - match version { - 0 => { - println!("Update to version 1..."); - con.execute( - " - CREATE TABLE [Version] ( - [id] INTEGER PRIMARY KEY, - [version] INTEGER NOT NULL, - [datetime] INTEGER DATETIME - ) - ", - rusqlite::NO_PARAMS - ); - con.execute( - " - CREATE TABLE [Recipe] ( - [id] INTEGER PRIMARY KEY, - [title] INTEGER NOT NULL, - [description] INTEGER DATETIME - ) - ", - rusqlite::NO_PARAMS - ); - () - } - v => - panic!("Unsupported database version: {}", v) - }; - } - - pub fn get_all_recipes() { - - } -} \ No newline at end of file