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-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/", retrieveApi);
// router.use("/api/", wineinfoApi);
// router.use("/api/lottery", lottery);
router.use("/api/virtual-registration/", virtualRegistrationApi);
// router.use("/api/virtual-registration/", virtualRegistrationApi);
module.exports = router;

View File

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