wf-radio/src/models/user.js

48 lines
1.5 KiB
JavaScript
Raw Normal View History

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) {
2025-04-25 14:37:42 +02:00
return await db.query("SELECT * FROM Users WHERE username = ?;", [name]);
}
async function getUserByEmail(email) {
2025-04-25 14:37:42 +02:00
return await db.query("SELECT * FROM Users WHERE email = ?;", [email]);
2025-03-31 09:42:30 +02:00
}
async function exists(name) {
2025-04-25 14:37:42 +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-04-25 19:51:56 +02:00
//TODO breakdown to handle partial updates
2025-04-25 14:37:42 +02:00
await db.prepare("INSERT INTO Users (username, email, password, display_name, profile_picture, favorites, preferences) \
2025-03-31 09:42:30 +02:00
VALUES (?, ?, ?, ?)", [name, email, password, displayName, profilePicture, favorites, preferences]);
return;
}
async function deleteUser(name) {
2025-04-25 19:51:56 +02:00
await 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]);
}
2025-04-25 19:51:56 +02:00
module.exports = { getAllUsers, getUserByName, getUserByEmail, createUser, deleteUser, exists }