update to user feedback

This commit is contained in:
2026-03-21 14:34:05 +00:00
parent b636009422
commit ec0da2ab2f
4 changed files with 74 additions and 34 deletions

View File

@@ -4,12 +4,19 @@ import bodyParser from "body-parser";
import bcrypt from "bcrypt";
import Database from "better-sqlite3";
const app = e();
const port = 3000;
const db = new Database("./database.db");
app.use(cors());
app.use(e.json());
app.use(bodyParser.json());
Date.prototype.addHours= function(h){
this.setTime(this.getTime() + (h*60*60*1000));
return this;
}
function getPeriod() {
const now = new Date();
let hours = now.getHours();
@@ -18,7 +25,7 @@ function getPeriod() {
// P1
return 1;
}
if ((hours == 9 && minutes >= 45) || (hours < 11 && minutes < 5)) {
if ((hours == 9 && minutes >= 45) || (hours == 11 && minutes < 5) || (hours == 10)) {
// P2 / Break
return 2;
}
@@ -30,7 +37,7 @@ function getPeriod() {
// P4
return 4;
}
if ((hours == 13 && minutes >= 5) || (hours == 15 && minutes < 15)) {
if ((hours == 13 && minutes >= 5) || (hours == 15 && minutes < 15) || (hours == 14)) {
// Lunch to P5
return 5;
} else {
@@ -39,17 +46,10 @@ function getPeriod() {
}
}
const app = e();
const port = 3000;
const db = new Database("./database.db");
app.use(cors());
app.use(e.json());
app.use(bodyParser.json());
// app.get('/', (req, res) => {
// res.send("Nothing Here");
// });
function incrementUserSubmissions(userid) {
const stmt = db.prepare(`UPDATE Users SET Submissions = Submissions + 1 WHERE Id=${parseInt(userid)};`);
stmt.run();
}
app.use('/', e.static('../frontend/dist'));
@@ -69,7 +69,7 @@ app.post('/currentRooms', (req, res) => {
return;
}
const today = req.body.day;
let stmt = db.prepare(`SELECT * FROM TimeSlots INNER JOIN Rooms ON Rooms.Id=TimeSlots.Room WHERE Period BETWEEN ${currentPeriod - 1} AND ${currentPeriod + 1} AND Day=${today};`);
let stmt = db.prepare(`SELECT TimeSlots.Id, TimeSlots.Period, TimeSlots.Day, Timeslots.Room, Rooms.RoomName FROM TimeSlots INNER JOIN Rooms ON Rooms.Id=TimeSlots.Room WHERE TimeSlots.Period BETWEEN ${currentPeriod - 1} AND ${currentPeriod + 1} AND Timeslots.Day=${today} ORDER BY Rooms.RoomName ASC;`);
let records = stmt.all();
res.status(200).json({records: records});
});
@@ -83,11 +83,23 @@ app.post('/addTimeSlot', (req, res) => {
let userid = parseInt(body.userid);
let stmt = db.prepare(`INSERT INTO TimeSlots (Period, Day, Room) VALUES (${body.period}, ${body.day}, ${roomid});`);
stmt.run();
stmt = db.prepare(`UPDATE Users SET Submissions = Submissions + 1 WHERE Id=${userid};`);
stmt.run();
incrementUserSubmissions(userid)
res.status(200).send("added timeslot");
});
app.post('/removeTimeSlot', (req, res) => {
// req has roomid and userid
// ress has success or faliure
console.log("removeTimeSlot");
const body = req.body;
const slotid = parseInt(body.Id);
const userid = parseInt(body.userId);
let stmt = db.prepare(`DELETE FROM TimeSlots WHERE Id=${slotid};`);
stmt.run();
incrementUserSubmissions(userid);
res.status(200).send("removed timeslot");
})
app.post('/addRoom', (req, res) => {
// req has userid and roomname
// res has success or faliure
@@ -100,10 +112,9 @@ app.post('/addRoom', (req, res) => {
res.status(418).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 = db.prepare(`INSERT INTO Rooms (RoomName) VALUES ('${name}')`);
stmt.run();
incrementUserSubmissions(parseInt(body.userid));
res.status(200).send("added room");
});
@@ -111,7 +122,7 @@ 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 stmt = db.prepare(`SELECT * FROM Rooms ORDER BY RoomName ASC;`);
let records = stmt.all();
res.status(200).send({records: records});
});
@@ -128,7 +139,7 @@ app.post('/createUser', async (req, res) => {
return;
}
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 = db.prepare(`INSERT INTO Users (Email, Pass, Username, Submissions) VALUES ('${body.email}', '${generatedHash}', '${body.name}', 0);`);
stmt.run();
stmt = db.prepare(`SELECT Id FROM Users WHERE Email='${body.email}';`);
const uid = stmt.get();