import con from '../db/db.js'; import { Router } from "express"; import { getAdminID } from "./adminQueries.js"; const router = Router(); // get a user from either table with email export function getUserByEmail(table, email) { return new Promise((resolve, reject) => { const query = `SELECT * FROM ${table} WHERE Email = ?`; con.query(query, [email], (err, rows) => { if (err) { console.error(err.message); reject(err); } resolve(rows[0]); }); }); } // delete a student from the database router.post('/DeleteStudent', (req,res) => { const {email} = req.body; const query = "DELETE FROM Users WHERE Users.Email = ?"; con.query(query, [email], function(err,rows) { if (err) { console.error(err.message); return res.status(500).json({ error: "DELETING STUDENT" }); } // contest doesn't exist if (rows.affectedRows === 0) return res.status(404).json({ error: "NO STUDENT" }); return res.status(200).json({ success: true }); }); }) // get all of the users with the same key as admin router.post('/getAllUsers', (req,res) => { const { email } = req.body; return getAdminID(email).then((Admin) => { const query = 'SELECT * FROM Users WHERE AdminID = ?'; con.query(query,[Admin.AdminID], (err,rows) => { if (err) { console.error(err.message); return res.status(500).json({ error: 'GETTING USERS '}); } if(rows.length === 0) res.status(404).json({ error: 'NO ADMIN/USERS FOUND '}); else res.json(rows); }); }); }); // return everything on a user by email router.post('/getUser', async(req,res) => { const { email } = req.body; return getUserByEmail('Users',email).then((row) => { if (row) res.json(row); else return res.status(404).json({ error: 'USER NOT FOUND' }); }) }); router.post('/getUsername', async(req,res) => { const { email } = req.body; return getUserByEmail('Users',email).then((row) => { if (row) res.json(row.Name); else return res.status(404).json({ error: 'USER NOT FOUND' }); }) }); // set the new name of the user router.post('/setUserName', (req,res) => { const { name, email } = req.body; const query = 'UPDATE Users SET Name = ? WHERE Email = ?'; con.query(query, [name,email], (err) => { if (err){ console.error(err.message); return res.status(500).json({ error: err }); } return res.status(200).json({ success: true }); }); }); // get all users from an AdminID export async function getUsersFromAdmin(AdminID) { return new Promise((resolve,reject) => { const query = 'SELECT * FROM Users WHERE AdminID = ?'; con.query(query, [AdminID], (err,rows) => { if (err) { console.error(err.message); reject(err); } resolve(rows); }) }); } export default router;