Search
This commit is contained in:
109
server.js
109
server.js
@@ -11,6 +11,13 @@ const dev = process.argv.length > 2 && process.argv[2] == "-dev";
|
||||
|
||||
const app = express();
|
||||
app.use(express.json());
|
||||
app.use((req, res, next) =>{
|
||||
if (req.path.endsWith(".html")) {
|
||||
res.redirect(req.path.replace(".html", ""));
|
||||
return;
|
||||
}
|
||||
next();
|
||||
})
|
||||
app.use(express.static("public"))
|
||||
app.use(cors({
|
||||
origin: [
|
||||
@@ -103,11 +110,25 @@ app.post("/getPlayers", authenticate, async (req, res) => {
|
||||
|
||||
const result = await pool.request()
|
||||
.input("query", sql.VarChar, player)
|
||||
.query(`SELECT * FROM [Player, IMPORTANT] WHERE player_name LIKE '%' + @query + '%'`);
|
||||
.query(`SELECT * FROM Player WHERE player_name LIKE '%' + @query + '%'`);
|
||||
|
||||
res.status(200).json({ query: player, matches: result.recordset });
|
||||
});
|
||||
|
||||
app.post("/getPlayer", authenticate, async (req, res) => {
|
||||
const { id } = req.body;
|
||||
|
||||
const result = await pool.request()
|
||||
.input("query", sql.VarChar, id)
|
||||
.query(`SELECT * FROM Player WHERE player_id = @query`);
|
||||
|
||||
if (result.recordset.length !== 1) {
|
||||
res.status(400).json({ success: false })
|
||||
return;
|
||||
}
|
||||
res.status(200).json({ success: true, match: result.recordset[0] });
|
||||
});
|
||||
|
||||
app.post("/getInfo", authenticate, async (req, res) => {
|
||||
const userData = req.user;
|
||||
|
||||
@@ -123,54 +144,6 @@ app.post("/getCourses", authenticate, async (req, res) => {
|
||||
res.status(200).json(courses);
|
||||
});
|
||||
|
||||
app.post("/createSection", authenticate, async (req, res) => {
|
||||
let { subject, number, days, startDate, endDate, startTime, endTime, term } = req.body;
|
||||
startTime = new Date("1970-01-01T" + startTime);
|
||||
endTime = new Date("1970-01-01T" + endTime);
|
||||
console.log(req.user);
|
||||
try {
|
||||
await pool.request()
|
||||
.input("subject", sql.VarChar(3), subject)
|
||||
.input("number", sql.Int, number)
|
||||
.input("professor", sql.Int, req.user.Id)
|
||||
.input("term", sql.VarChar(10), term)
|
||||
.input("startDate", sql.Date, startDate)
|
||||
.input("endDate", sql.Date, endDate)
|
||||
.input("startTime", sql.Time(0), startTime)
|
||||
.input("endTime", sql.Time(0), endTime)
|
||||
.input("days", sql.Int, days)
|
||||
.query(`
|
||||
INSERT INTO Sections (
|
||||
Subject,
|
||||
Number,
|
||||
ProfessorID,
|
||||
Term,
|
||||
Days,
|
||||
StartDate,
|
||||
EndDate,
|
||||
StartTime,
|
||||
EndTime
|
||||
) VALUES (
|
||||
@subject,
|
||||
@number,
|
||||
@professor,
|
||||
@term,
|
||||
@days,
|
||||
@startDate,
|
||||
@endDate,
|
||||
@startTime,
|
||||
@endTime
|
||||
)
|
||||
`);
|
||||
} catch (err) {
|
||||
if (err.message.includes("Violation of UNIQUE KEY constraint")) {
|
||||
res.status(500).send({ success: false, message: `Username "${username}" is already taken.` });
|
||||
}
|
||||
res.status(500).send({ success: false, message: err.message });
|
||||
}
|
||||
res.status(200).send({ success: true, message: "Section created successfully."});
|
||||
})
|
||||
|
||||
app.post("/setInfo", authenticate, async (req, res) => {
|
||||
const { firstName, lastName, dob } = req.body;
|
||||
|
||||
@@ -192,7 +165,18 @@ app.post("/setInfo", authenticate, async (req, res) => {
|
||||
res.status(500).json({ message: "Update request failed" })
|
||||
}
|
||||
|
||||
res.status(200).json({ message: "Information updated successfully" });
|
||||
var updatedUser = req.user;
|
||||
updatedUser.FirstName = firstName;
|
||||
updatedUser.LastName = lastName;
|
||||
updatedUser.DOB = dob;
|
||||
|
||||
const token = jwt.sign(updatedUser, JWT_SECRET);
|
||||
console.log("Issued token: " + JSON.stringify(token))
|
||||
res.status(200).send({
|
||||
success: true,
|
||||
message: "Information updated successfully",
|
||||
token
|
||||
});
|
||||
});
|
||||
|
||||
app.post("/delete", authenticate, async (req, res) => {
|
||||
@@ -219,6 +203,7 @@ app.post("/delete", authenticate, async (req, res) => {
|
||||
async function authenticate(req, res, next) {
|
||||
try {
|
||||
const authenticationHeader = req.headers["authorization"];
|
||||
console.log("authenticationheader: " + authenticationHeader);
|
||||
const token = authenticationHeader.split(" ")[1];
|
||||
|
||||
console.log(JSON.stringify(authenticationHeader));
|
||||
@@ -231,10 +216,34 @@ async function authenticate(req, res, next) {
|
||||
console.log(decoded.Username + " authenticated");
|
||||
} catch (error) {
|
||||
console.log("Authentication header missing");
|
||||
console.log(error);
|
||||
res.status(401).json({ message: "You are not logged in", error: error, logout: true });
|
||||
return;
|
||||
}
|
||||
next();
|
||||
}
|
||||
|
||||
app.get("/player/:id", (req, res) => {
|
||||
res.sendFile(__dirname + "/public/player.html");
|
||||
})
|
||||
|
||||
app.get("/search", (req, res) => {
|
||||
res.sendFile(__dirname + "/public/search.html");
|
||||
})
|
||||
|
||||
app.get("/home", (req, res) => {
|
||||
res.sendFile(__dirname + "/public/home.html");
|
||||
})
|
||||
|
||||
app.get("/info", (req, res) => {
|
||||
res.sendFile(__dirname + "/public/info.html");
|
||||
})
|
||||
|
||||
app.get("/register", (req, res) => {
|
||||
res.sendFile(__dirname + "/public/register.html");
|
||||
})
|
||||
|
||||
app.get("/login", (req, res) => {
|
||||
res.sendFile(__dirname + "/public/login.html");
|
||||
})
|
||||
app.listen(serverPort, "0.0.0.0", () => console.log(`Running ${dev ? "dev " : ""}server on port ${serverPort}`));
|
||||
|
||||
Reference in New Issue
Block a user