1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#[macro_use]
extern crate diesel;

use diesel::prelude::*;
use diesel::sql_query;
use diesel::sqlite::SqliteConnection;

pub mod crud;
pub mod models;
pub mod schema;

pub type NxtnoteConfigFile = SqliteConnection;

pub fn initialize_config(conn: &SqliteConnection) {
    sql_query(
        "\
        CREATE TABLE settings (
            namespace   TEXT NOT NULL,
            category    TEXT NOT NULL,
            name        TEXT NOT NULL,
            value       BLOB,
            PRIMARY KEY(namespace, name, category)
        )
    ",
    )
    .execute(conn)
    .unwrap();
}

pub fn get_config(file: String) -> NxtnoteConfigFile {
    let connection = SqliteConnection::establish(&file).expect(&format!("Error connecting to {}", file));

    sql_query("PRAGMA foreign_keys = ON").execute(&connection).unwrap();

    connection
}