Endpoints defined and exported as functions.

Changed all routes to functions and export them to app.js to handle the
registration of route using the functions exported from this file.
This commit is contained in:
2020-08-28 18:45:33 +02:00
parent a6a84e4b29
commit 51a7107802
2 changed files with 50 additions and 42 deletions

View File

@@ -36,10 +36,19 @@ router.get("/lottery/latest", lottery.latest);
router.get("/lottery/by-date/:date", lottery.byEpochDate); router.get("/lottery/by-date/:date", lottery.byEpochDate);
router.get("/lottery/by-name/:name", lottery.byName); router.get("/lottery/by-name/:name", lottery.byName);
router.delete('/winners', mustBeAuthenticated, virtual.removeWinners);
router.delete('/attendees', mustBeAuthenticated, virtual.removeAttendees);
router.get('/winners', virtual.winners);
router.get('/winners/secure', mustBeAuthenticated, virtual.winnersSecure);
router.post('/finish', mustBeAuthenticated, virtual.finish);
router.get('/attendee/all', virtual.attendees);
router.get('/attendee/all/secure', mustBeAuthenticated, virtual.attendeesSecure);
router.post('attendee/add', mustBeAuthenticated, virtual.addAttendee);
// router.use("/api/", updateApi); // router.use("/api/", updateApi);
// router.use("/api/", retrieveApi); // router.use("/api/", retrieveApi);
// router.use("/api/", wineinfoApi); // router.use("/api/", wineinfoApi);
// router.use("/api/lottery", lottery); // router.use("/api/lottery", lottery);
router.use("/api/virtual-registration/", virtualRegistrationApi); // router.use("/api/virtual-registration/", virtualRegistrationApi);
module.exports = router; module.exports = router;

View File

@@ -22,23 +22,19 @@ const PreLotteryWine = require(path.join(
const Message = require(path.join(__dirname + "/../api/message")); const Message = require(path.join(__dirname + "/../api/message"));
router.use((req, res, next) => { const removeWinners = async (req, res) => {
next();
});
router.route("/winners").delete(mustBeAuthenticated, async (req, res) => {
await VirtualWinner.deleteMany(); await VirtualWinner.deleteMany();
io.emit("refresh_data", {}); io.emit("refresh_data", {});
res.json(true); return res.json(true);
}); };
router.route("/attendees").delete(mustBeAuthenticated, async (req, res) => { const deleteAttendees = req, res) => {
await Attendee.deleteMany(); await Attendee.deleteMany();
io.emit("refresh_data", {}); io.emit("refresh_data", {});
res.json(true); return res.json(true);
}); };
router.route("/winners").get(async (req, res) => { const winners = async (req, res) => {
let winners = await VirtualWinner.find(); let winners = await VirtualWinner.find();
let winnersRedacted = []; let winnersRedacted = [];
let winner; let winner;
@@ -50,18 +46,18 @@ router.route("/winners").get(async (req, res) => {
}); });
} }
res.json(winnersRedacted); res.json(winnersRedacted);
}); };
router.route("/winners/secure").get(mustBeAuthenticated, async (req, res) => { const winnersSecure = async (req, res) => {
let winners = await VirtualWinner.find(); let winners = await VirtualWinner.find();
res.json(winners); return res.json(winners);
}); });
router.route("/winner").get(mustBeAuthenticated, async (req, res) => { const winner = async (req, res) => {
let allContestants = await Attendee.find({ winner: false }); let allContestants = await Attendee.find({ winner: false });
if (allContestants.length == 0) { if (allContestants.length == 0) {
res.json(false); return res.json(false);
return; return;
} }
let ballotColors = []; let ballotColors = [];
@@ -151,8 +147,8 @@ router.route("/winner").get(mustBeAuthenticated, async (req, res) => {
); );
await newWinnerElement.save(); await newWinnerElement.save();
res.json(winner); return res.json(winner);
}); };
const genRandomString = function(length) { const genRandomString = function(length) {
return crypto return crypto
@@ -168,18 +164,16 @@ const sha512 = function(password, salt) {
return value; return value;
}; };
router.route("/finish").get(mustBeAuthenticated, async (req, res) => { const finish = async (req, res) => {
if (!config.gatewayToken) { if (!config.gatewayToken) {
res.json(false); return res.json(false);
return;
} }
let winners = await VirtualWinner.find({ timestamp_sent: undefined }).sort({ let winners = await VirtualWinner.find({ timestamp_sent: undefined }).sort({
timestamp_drawn: 1 timestamp_drawn: 1
}); });
if (winners.length == 0) { if (winners.length == 0) {
res.json(false); return res.json(false);
return;
} }
let firstWinner = winners[0]; let firstWinner = winners[0];
@@ -188,12 +182,10 @@ router.route("/finish").get(mustBeAuthenticated, async (req, res) => {
let messageSent = await Message.sendMessage(firstWinner); let messageSent = await Message.sendMessage(firstWinner);
Message.sendUpdate(winners.slice(1)); Message.sendUpdate(winners.slice(1));
if (!messageSent) { if (!messageSent) {
res.json(false); return res.json(false);
return;
} }
} catch (e) { } catch (e) {
res.json(false); return res.json(false);
return;
} }
firstWinner.timestamp_sent = new Date().getTime(); firstWinner.timestamp_sent = new Date().getTime();
@@ -201,11 +193,10 @@ router.route("/finish").get(mustBeAuthenticated, async (req, res) => {
await firstWinner.save(); await firstWinner.save();
startTimeout(firstWinner.id); startTimeout(firstWinner.id);
res.json(true); return res.json(true);
return; };
});
router.route("/attendees").get(async (req, res) => { const attendees = async (req, res) => {
let attendees = await Attendee.find(); let attendees = await Attendee.find();
let attendeesRedacted = []; let attendeesRedacted = [];
let attendee; let attendee;
@@ -220,16 +211,16 @@ router.route("/attendees").get(async (req, res) => {
yellow: attendee.yellow yellow: attendee.yellow
}); });
} }
res.json(attendeesRedacted); return res.json(attendeesRedacted);
}); };
router.route("/attendees/secure").get(mustBeAuthenticated, async (req, res) => { const attendeesSecure = async (req, res) => {
let attendees = await Attendee.find(); let attendees = await Attendee.find();
res.json(attendees); return res.json(attendees);
}); });
router.route("/attendee").post(mustBeAuthenticated, async (req, res) => { return addAttendee = async (req, res) => {
const attendee = req.body; const attendee = req.body;
const { red, blue, yellow, green } = attendee; const { red, blue, yellow, green } = attendee;
@@ -246,7 +237,7 @@ router.route("/attendee").post(mustBeAuthenticated, async (req, res) => {
io.emit("new_attendee", {}); io.emit("new_attendee", {});
res.send(true); return res.send(true);
}); });
function shuffle(array) { function shuffle(array) {
@@ -305,7 +296,15 @@ function startTimeout(id) {
}, 600000); }, 600000);
} }
module.exports = function(_io) { module.exports = {
io = _io; removeWinners,
return router; deleteAttendees,
}; winners,
winnersSecure,
winner,
finish,
attendees,
attendeesSecure,
addAttendee
}