diff --git a/src/database/index.js b/src/database/index.js index fcc776a..28dc108 100644 --- a/src/database/index.js +++ b/src/database/index.js @@ -11,11 +11,11 @@ async function connectDatabase() { // Choose database type if (config.type === "mysql") { - db = new MySQLDatabase(config); + db = new MySQLDatabase(config); } else if (config.type === "sqlite") { - db = new SQLiteDatabase(config); + db = new SQLiteDatabase(config); } else { - throw new Error("Invalid database type: ", config.type); + throw new Error("Invalid database type: ", config.type); } // Connect @@ -32,32 +32,30 @@ async function initDatabase() { } // Create mods table - db.exec("CREATE TABLE IF NOT EXISTS mods ( \ - Username tinytext PRIMARY KEY, \ - DisplayName tinytext, \ - Author tinytext,\ - Versions longtext,\ - OtherInfos longtext \ - );"); + db.exec("CREATE TABLE IF NOT EXISTS Mods ( \ + name tinytext PRIMARY KEY, \ + display_name tinytext, \ + author tinytext\ + );"); // Insert example mod // if (!(await db.exists("mods", "Name", "example"))) { // console.debug("Creating default mod"); - // db.exec(`INSERT INTO mods (Name, DisplayName, Author, Versions, OtherInfos) \ - // VALUES ('example', 'Example mod', '${config.users.admin.username}', '', '');`); + // db.exec(`INSERT INTO Mods (name, display_name, author, versions) \ + // VALUES ('example', 'Example mod', '${config.users.admin.username}', '');`); // } - db.exec("DROP TABLE users"); + // Create users table - db.exec("CREATE TABLE IF NOT EXISTS users ( \ - Username tinytext PRIMARY KEY, \ - DisplayName tinytext, \ - Email tinytext,\ - Password tinytext,\ - ProfilePicture longtext,\ - Preferences longtext, \ - Favorites longtext \ - );"); + db.exec("CREATE TABLE IF NOT EXISTS Users ( \ + username tinytext PRIMARY KEY, \ + display_name tinytext, \ + email tinytext,\ + password tinytext,\ + profile_picture longtext,\ + preferences longtext, \ + favorites longtext \ + );"); // Insert default admin account // if (!(await db.exists("users", "Username", config.users.admin.username))) { @@ -69,7 +67,7 @@ async function initDatabase() { function getDatabase() { - return db; + return db; } diff --git a/src/middleware/auth.js b/src/middleware/auth.js index b694032..8506166 100644 --- a/src/middleware/auth.js +++ b/src/middleware/auth.js @@ -80,4 +80,4 @@ async function authorizeUserModification(req) { } -module.exports = { authenticateToken } \ No newline at end of file +module.exports = { authenticateToken, authorizeModModification, authorizeModpackModification, authorizeUserModification }; \ No newline at end of file diff --git a/src/models/mod.js b/src/models/mod.js index f64cc2d..11f30e9 100644 --- a/src/models/mod.js +++ b/src/models/mod.js @@ -3,27 +3,16 @@ const AppError = require('../utils/appError'); const db = getDatabase(); async function getAllMods() { - return db.query("SELECT * FROM mods"); + return db.query("SELECT name FROM Mods"); } async function getModByName(name) { - try { - console.debug("Searching for", name); - const res = await db.query("SELECT * FROM mods WHERE Name = ?;", [name]); - if (res && res.length > 0) { - return res[0]; - } else { - return null; - } - } catch (err) { - console.error("Error in getModByName:", err); - throw err; - } + return await db.query("SELECT name, display_name, author FROM Mods WHERE name = ?;", [name]); } async function exists(name) { - return db.exists("mods", "Name", name); + return db.exists("Mods", "name", name); } async function createMod(mod_data) { @@ -31,8 +20,8 @@ async function createMod(mod_data) { const { name, displayName, author, versions, otherInfos } = mod_data; const { description, links, tags, screenshots, license, changelogs, counts } = otherInfos; - await db.prepare("INSERT INTO mods (Name, DisplayName, Author, Versions) \ - VALUES (?, ?, ?, ?)", [name, displayName, author, versions]); + await db.prepare("INSERT INTO mods (name, display_name, author) \ + VALUES (?, ?, ?, ?)", [name, displayName, author]); // db.prepare("INSERT INTO modsDescription (Name, Description, Links, Tags, Screenshots, License, Changelogs, Counts) \ // VALUES (?, ?, ?, ?, ?, ?, ?, ?)", [name, description, links, tags, screenshots, license, changelogs, counts]); return; @@ -40,7 +29,7 @@ async function createMod(mod_data) { async function deleteMod(name) { console.log("WARNING: using a WIP function : deleteMod (models/mods.js)"); - db.prepare("DELETE FROM mods WHERE Name = ?", [name]); + db.prepare("DELETE FROM Mods WHERE name = ?", [name]); // db.prepare("DELETE FROM modsDescription WHERE Name = ?", [name]); return; } diff --git a/src/models/user.js b/src/models/user.js index 3f80528..dc4c989 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -7,52 +7,28 @@ async function getAllUsers() { } async function getUserByName(name) { - try { - console.debug("Searching for", name); - const res = await db.query("SELECT * FROM users WHERE Username = ?;", [name]); - if (res && res.length > 0) { - return res[0]; - } else { - return null; - } - } catch (err) { - console.error("Error in getUserByName:", err); - throw err; - } - + return await db.query("SELECT * FROM Users WHERE username = ?;", [name]); } async function getUserByEmail(email) { - try { - console.debug("Searching for", email); - const res = await db.query("SELECT * FROM users WHERE Email = ?;", [email]); - if (res && res.length > 0) { - return res[0]; - } else { - return null; - } - } catch (err) { - console.error("Error in getUserByName:", err); - throw err; - } - + return await db.query("SELECT * FROM Users WHERE email = ?;", [email]); } async function exists(name) { - return db.exists("users", "Username", name); + return db.exists("Users", "username", name); } async function createUser(user_data) { const { name, email, password, displayName, profilePicture, favorites, preferences } = user_data; - await db.prepare("INSERT INTO users (Username, Email, Password, DisplayName, ProfilePicture, Favorites, Preferences) \ + await db.prepare("INSERT INTO Users (username, email, password, display_name, profile_picture, favorites, preferences) \ VALUES (?, ?, ?, ?)", [name, email, password, displayName, profilePicture, favorites, preferences]); return; } async function deleteUser(name) { - db.prepare("DELETE FROM users WHERE Username = ?", [name]); + db.prepare("DELETE FROM Users WHERE username = ?", [name]); return; }