2025-03-31 09:42:30 +02:00
|
|
|
const { getDatabase } = require('../database/index');
|
|
|
|
const AppError = require('../utils/appError');
|
|
|
|
const db = getDatabase();
|
|
|
|
|
|
|
|
async function getAllUsers() {
|
|
|
|
return db.query("SELECT * FROM users");
|
|
|
|
}
|
|
|
|
|
|
|
|
async function getUserByName(name) {
|
|
|
|
try {
|
|
|
|
console.debug("Searching for", name);
|
2025-03-31 17:00:28 +02:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
async function getUserByEmail(email) {
|
|
|
|
try {
|
|
|
|
console.debug("Searching for", email);
|
|
|
|
const res = await db.query("SELECT * FROM users WHERE Email = ?;", [email]);
|
2025-03-31 09:42:30 +02:00
|
|
|
if (res && res.length > 0) {
|
|
|
|
return res[0];
|
|
|
|
} else {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
} catch (err) {
|
|
|
|
console.error("Error in getUserByName:", err);
|
|
|
|
throw err;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
async function exists(name) {
|
2025-03-31 17:00:28 +02:00
|
|
|
return db.exists("users", "Username", name);
|
2025-03-31 09:42:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
async function createUser(user_data) {
|
|
|
|
|
|
|
|
const { name, email, password, displayName, profilePicture, favorites, preferences } = user_data;
|
|
|
|
|
2025-03-31 17:00:28 +02:00
|
|
|
await db.prepare("INSERT INTO users (Username, Email, Password, DisplayName, ProfilePicture, Favorites, Preferences) \
|
2025-03-31 09:42:30 +02:00
|
|
|
VALUES (?, ?, ?, ?)", [name, email, password, displayName, profilePicture, favorites, preferences]);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
async function deleteUser(name) {
|
2025-03-31 17:00:28 +02:00
|
|
|
db.prepare("DELETE FROM users WHERE Username = ?", [name]);
|
2025-03-31 09:42:30 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
// --- WIP ---
|
|
|
|
|
|
|
|
async function updateUser(user_data) {
|
|
|
|
console.log("WARNING: using a WIP function : updateUser (userels/users.js)");
|
|
|
|
throw new AppError(501, "Not implemented");
|
|
|
|
// const { name, description } = user_data;
|
|
|
|
// return db.query("INSERT INTO users (name, description) VALUES (?, ?)", [name, description]);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
module.exports = { getAllUsers, getUserByName, createUser, deleteUser, exists }
|