feat: Updated database model

This commit is contained in:
Gu://em_ 2025-04-25 14:37:42 +02:00
parent ce806ef426
commit 32a5c97c02
4 changed files with 33 additions and 70 deletions

View file

@ -32,31 +32,29 @@ 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

View file

@ -80,4 +80,4 @@ async function authorizeUserModification(req) {
}
module.exports = { authenticateToken }
module.exports = { authenticateToken, authorizeModModification, authorizeModpackModification, authorizeUserModification };

View file

@ -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;
}

View file

@ -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;
}