Renamed to winners. Winners gets controller setup.

Rewrote everything that happened in history to better take advantage of
monogdb instead of doing everything in js.

Our endpoints become:
 - /winners - getAll w/ includeWines and sort query params.
 - /winners/latest - latest winners grouped w/ includeWines query
 params.
 - /winners/by-date - all winners grouped by date w/ includeWines and
 sort.
 - /winners/by-date/:date - get winners per epoch or string date.
 - /winners/by-name/:name - get winner by name parameter w/ sort for
 wins direction.
This commit is contained in:
2021-01-17 16:55:57 +01:00
parent 5e06a3fc28
commit 53780878af
4 changed files with 356 additions and 209 deletions

View File

@@ -1,92 +0,0 @@
const path = require("path");
const historyRepository = require(path.join(__dirname, "../history"));
const all = (req, res) => {
return historyRepository
.all()
.then(lotteries =>
res.send({
lotteries: lotteries,
success: true
})
)
.catch(error => {
const { statusCode, message } = error;
return res.status(statusCode || 500).send({
success: false,
message: message || "Unable to fetch history."
});
});
};
const latest = (req, res) => {
return historyRepository
.latest()
.then(lottery =>
res.send({
lottery: lottery,
success: true
})
)
.catch(error => {
const { statusCode, message } = error;
return res.status(statusCode || 500).send({
success: false,
message: message || "Unable to fetch latest history."
});
});
};
const byDate = (req, res) => {
let { date } = req.params;
date = new Date(new Date(parseInt(date)).setHours(0, 0, 0, 0)).getTime();
return historyRepository
.byEpochDate(date)
.then(winners =>
res.send({
date: date,
winners: winners,
success: true
})
)
.catch(error => {
const { statusCode, message } = error;
return res.status(statusCode || 500).send({
success: false,
message: message || "Unable to fetch history for date."
});
});
};
const byName = (req, res) => {
const { name } = req.params;
return historyRepository
.byName(name)
.then(lotteries =>
res.send({
name: name,
lotteries: lotteries,
success: true
})
)
.catch(error => {
const { statusCode, message } = error;
return res.status(statusCode || 500).send({
success: false,
message: message || "Unable to fetch history for name."
});
});
};
module.exports = {
all,
latest,
byDate,
byName
};