From c532f5386f19dcb1260cb579d12eb7d8b2eb009a Mon Sep 17 00:00:00 2001 From: ChrisChrome Date: Sun, 5 May 2024 23:57:53 -0600 Subject: [PATCH] Dur --- index.js | 71 +++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 26 deletions(-) diff --git a/index.js b/index.js index 38c4420..31cf6b5 100644 --- a/index.js +++ b/index.js @@ -8,13 +8,7 @@ const sqlite3 = require("sqlite3").verbose(); const db = new sqlite3.Database("database.db"); const SQLiteStore = require('connect-sqlite3')(session); -// Init DB if new -db.run( // Create users table - "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, username TEXT, password TEXT, authLevel INTEGER)" -); -db.run( // Create tickets table - "CREATE TABLE IF NOT EXISTS tickets (id INTEGER PRIMARY KEY, title TEXT, description TEXT, status INTEGER, user INTEGER, priority INTEGER(1), createdTimestamp INTEGER, updatedTimestamp INTEGER, messages TEXT, FOREIGN KEY(user) REFERENCES users(id))" -); + // Middleware app.use(express.json()); @@ -555,23 +549,48 @@ app.get("/admin/listUsers", isAuthenticated, (req, res) => { }); }); -app.listen(port, () => { - console.log(`Server listening on port ${port}`); - // If users table is empty create an admin user - db.get("SELECT * FROM users", (err, row) => { - if (err) { - console.error(err); - return; - } - if (!row) { - let pass = genPass(); - createUser("admin", pass, 1) - .then(() => { - console.log(`Admin user created. Username: admin, Password: ${pass}`); - }) - .catch((err) => { - console.error(err); - }); - } +(async () => { + await new Promise((resolve, reject) => { + db.run( + // Create users table + "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, username TEXT, password TEXT, authLevel INTEGER)", + (err) => { + if (err) reject(err); + else resolve(); + } + ); }); -}); \ No newline at end of file + + await new Promise((resolve, reject) => { + db.run( + // Create tickets table + "CREATE TABLE IF NOT EXISTS tickets (id INTEGER PRIMARY KEY, title TEXT, description TEXT, status INTEGER, user INTEGER, priority INTEGER(1), createdTimestamp INTEGER, updatedTimestamp INTEGER, messages TEXT, FOREIGN KEY(user) REFERENCES users(id))", + (err) => { + if (err) reject(err); + else resolve(); + } + ); + }); + + // Start the server + app.listen(port, () => { + console.log(`Server listening on port ${port}`); + // If users table is empty create an admin user + db.get("SELECT * FROM users", (err, row) => { + if (err) { + console.error(err); + return; + } + if (!row) { + let pass = genPass(); + createUser("admin", pass, 1) + .then(() => { + console.log(`Admin user created. Username: admin, Password: ${pass}`); + }) + .catch((err) => { + console.error(err); + }); + } + }); + }); +})(); \ No newline at end of file