adding rooms

This commit is contained in:
2026-03-19 01:42:59 +00:00
parent ceb907b975
commit 285a734ca0
8 changed files with 121 additions and 15 deletions

Binary file not shown.

View File

@@ -19,30 +19,58 @@ app.get('/', (req, res) => {
app.get('/currentRooms', (req, res) => {
// req has no data
// res has all room at current time
console.log("currentRooms");
let stmt = db.prepare(`SELECT * FROM TimeSlots`);
let records = stmt.all();
res.status(200).json({records: records});
console.log("currentRooms");
});
app.get('/addTimeslot', (req, res) => {
app.post('/addTimeSlot', (req, res) => {
// req has roomid userid starttime and end time
// res has success or faliure
console.log("addTimeSlot");
const body = req.body;
let roomid = parseInt(body.roomid);
let userid = parseInt(body.userid);
let stmt = db.prepare(`INSERT INTO TimeSlots (TimeStart, TimeEnd, Room) VALUES ('${body.startTime}', '${body.endTime}', ${roomid});`);
stmt.run();
stmt = db.prepare(`UPDATE Users SET Submissions = Submissions + 1 WHERE Id=${userid};`);
stmt.run();
res.status(200).send("added timeslot");
});
app.get('/addRoom', (req, res) => {
app.post('/addRoom', (req, res) => {
// req has userid and roomname
// res has success or faliure
console.log("addRoom");
const body = req.body;
let name = req.body.roomName.toUpperCase();
let stmt = db.prepare(`SELECT * FROM Rooms WHERE RoomName='${name}'`);
let storedRecord = stmt.get();
if (storedRecord) {
res.status(400).send("room already exists");
return;
}
stmt = db.prepare(`INSERT INTO Rooms (RoomName) VALUES (${name})`);
stmt.run();
stmt = db.prepare(`UPDATE Users SET Submissions = Submissions + 1 WHERE Id=${parseInt(body.userid)};`);
stmt.run();
res.status(200).send("added room");
});
app.get('/getRooms', (req, res) => {
// req has no data
// res has success or faliure
console.log("getRooms");
let stmt = db.prepare(`SELECT * FROM Rooms`);
let records = stmt.all();
res.status(200).send({records: records});
});
app.post('/createUser', async (req, res) => {
// req has email pass(hashed) and name
// res has success or fail
console.log("sign up");
const body = req.body;
let stmt = db.prepare(`SELECT * FROM Users WHERE Email='${body.email}';`);
let storedRecord = stmt.get();
@@ -53,23 +81,26 @@ app.post('/createUser', async (req, res) => {
const generatedHash = await bcrypt.hash(body.pass, 10);
stmt = db.prepare(`INSERT INTO Users (Email, Pass, Username, Submissions) VALUES ('${body.email}', '${generatedHash}', '${body.name}', 0)`);
stmt.run();
res.status(200).send("account created");
console.log("sign up");
stmt = db.prepare(`SELECT Id FROM Users WHERE Email='${body.email}';`);
const uid = stmt.get();
res.status(200).send({uid: uid});
});
app.post('/login', async (req, res) => {
// req has email and pass(hashed)
// res has success or fail
console.log("login");
const body = req.body;
const stmt = db.prepare(`SELECT Pass FROM Users WHERE Email='${body.email}';`);
let stmt = db.prepare(`SELECT Pass FROM Users WHERE Email='${body.email}';`);
let storedHash = stmt.get();
if (!storedHash) {
res.status(400).send("problem with email");
return;
}
if (await bcrypt.compare(body.pass, storedHash.Pass)){
res.send(200);
console.log("login");
stmt = db.prepare(`SELECT Id FROM Users WHERE Email='${body.email}';`);
const uid = stmt.get();
res.status(200).send({uid: uid});
} else {
res.status(400).send("incorrect password");
}

View File

@@ -14,7 +14,7 @@ CREATE TABLE Users (
CREATE TABLE Rooms (
Id INTEGER PRIMARY KEY ASC AUTOINCREMENT,
RoomName TEXT
RoomName TEXT UNIQUE
);
CREATE TABLE TimeSlots (