110 lines
2.5 KiB
JavaScript
110 lines
2.5 KiB
JavaScript
import mysql from "mysql2";
|
|
import dotenv from "dotenv";
|
|
dotenv.config();
|
|
|
|
const pool = mysql
|
|
.createPool({
|
|
host: process.env.DB_HOST,
|
|
user: process.env.DB_USER,
|
|
password: process.env.DB_PASSWORD,
|
|
database: process.env.DB_NAME,
|
|
})
|
|
.promise();
|
|
|
|
export async function loginUser(username, password) {
|
|
const [result] = await pool.query(
|
|
"SELECT * FROM users WHERE username = ? AND password = ?",
|
|
[username, password]
|
|
);
|
|
|
|
if (result.length > 0) {
|
|
console.log("User found: ", result[0].username, " ", result[0].id);
|
|
return { success: true, user: result[0] };
|
|
} else {
|
|
console.error(`Invalid username or password!; ${result[0]}`);
|
|
return { success: false, message: "Invalid username or password" };
|
|
}
|
|
}
|
|
|
|
export async function createUser(
|
|
username,
|
|
first_name,
|
|
last_name,
|
|
password,
|
|
email
|
|
) {
|
|
try {
|
|
const [result] = await pool.query(
|
|
"INSERT INTO users (username, first_name, last_name, password, email) VALUES (?, ?, ?, ?, ?)",
|
|
[username, first_name, last_name, password, email]
|
|
);
|
|
|
|
console.log("User created successfully!");
|
|
return { success: true };
|
|
} catch (error) {
|
|
console.error("Error creating user: ", error);
|
|
return { success: false, message: "Error creating user" };
|
|
}
|
|
}
|
|
|
|
export async function updateUser(
|
|
username,
|
|
first_name,
|
|
last_name,
|
|
password,
|
|
email
|
|
) {
|
|
try {
|
|
const [result] = await pool.query(
|
|
"UPDATE users SET first_name = ?, last_name = ?, password = ?, email = ? WHERE username = ?",
|
|
[first_name, last_name, password, email, username]
|
|
);
|
|
return {
|
|
success: true,
|
|
message: "User updated successfully",
|
|
resultOfquery: result,
|
|
};
|
|
} catch (error) {
|
|
console.error("Error updating user: ", error);
|
|
return {
|
|
success: false,
|
|
message: "Error updating user",
|
|
resultOfquery: result,
|
|
};
|
|
}
|
|
}
|
|
|
|
export async function deleteUser(
|
|
username,
|
|
first_name,
|
|
last_name,
|
|
password,
|
|
email
|
|
) {
|
|
try {
|
|
const [result] = await pool.query(
|
|
"DELETE FROM users WHERE username = ? AND password = ?",
|
|
[username, password]
|
|
);
|
|
const resultOfquery = result.affectedRows;
|
|
|
|
if (resultOfquery > 0) {
|
|
console.log("User deleted successfully!");
|
|
return {
|
|
success: true,
|
|
message: "User deleted successfully",
|
|
resultOfquery: result,
|
|
};
|
|
}
|
|
|
|
if (resultOfquery === 0) {
|
|
console.log("Error deleting user.");
|
|
return {
|
|
success: false,
|
|
message: "Error deleting user",
|
|
resultOfquery: null,
|
|
};
|
|
}
|
|
} catch (err) {}
|
|
}
|