diff --git a/src/init/init_db.js b/src/init/init_db.js new file mode 100644 index 0000000..fdf9caa --- /dev/null +++ b/src/init/init_db.js @@ -0,0 +1,42 @@ +import sqlite3 from 'sqlite3'; +import jsSHA from 'jssha'; + +const db = new sqlite3.Database('./src/lib/data/tatort.db'); + +db.serialize(() => { + // users table + + let create_stmt = `CREATE TABLE IF NOT EXISTS users + (id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + pw TEXT NOT NULL)`; + db.run(create_stmt); + + // check if there are any users; if not add one default admin one + let pw = 'pass-123'; + let hashed_pw = new jsSHA('SHA-512', 'TEXT').update(pw).getHash('HEX'); + + let check_ins_stmt = `INSERT INTO users (name, pw) SELECT 'admin', '${hashed_pw}' + WHERE NOT EXISTS (SELECT * FROM users);`; + + db.run(check_ins_stmt); + + let users_stmt = `SELECT * FROM USERS`; + db.each(users_stmt, (err, row) => { + console.log(`xxx ${row.name} + ${row.pw}`) + }); + + // cases table + + create_stmt = `CREATE TABLE IF NOT EXISTS cases + (id INTEGER PRIMARY KEY AUTOINCREMENT, + token TEXT NOT NULL UNIQUE, + name TEXT NOT NULL, + pw TEXT NOT NULL, + created_by INTEGER NOT NULL, + FOREIGN KEY(created_by) REFERENCES users(id))`; + + db.run(create_stmt); +}); + +db.close(); diff --git a/src/lib/data/tatort.db b/src/lib/data/tatort.db new file mode 100644 index 0000000..5ab89f5 Binary files /dev/null and b/src/lib/data/tatort.db differ