When selecting prize, add winner to wine.
Changed the way we register a prize for winner. Now we have a new prize_selected boolean field on a winner. This is used to filter on when finding what winners have not selected a prize yet. This also replaces the previous method of removing virtualWinners after they selected a prize. PrelotteryWine also get's a winner reference. This is used to filter on when finding what prizes are left, and also makes it easier to archive/register a lottery when the wine has a winner attached.
This commit is contained in:
		@@ -4,7 +4,11 @@ const PreLotteryWine = require(path.join(__dirname, "/schemas/PreLotteryWine"));
 | 
			
		||||
const { WineNotFound } = require(path.join(__dirname, "/vinlottisErrors"));
 | 
			
		||||
 | 
			
		||||
const allWines = () => {
 | 
			
		||||
  return PreLotteryWine.find();
 | 
			
		||||
  return PreLotteryWine.find().populate("winner");
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const allWinesWithoutWinner = () => {
 | 
			
		||||
  return PreLotteryWine.find({ winner: { $exists: false } });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const addWines = wines => {
 | 
			
		||||
@@ -56,6 +60,12 @@ const updateWineById = (id, updateModel) => {
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const addWinnerToWine = (wine, winner) => {
 | 
			
		||||
  wine.winner = winner;
 | 
			
		||||
  winner.prize_selected = true;
 | 
			
		||||
  return Promise.all(wine.save(), winner.save());
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const deleteWineById = id => {
 | 
			
		||||
  return PreLotteryWine.findOne({ _id: id }).then(wine => {
 | 
			
		||||
    if (wine == null) {
 | 
			
		||||
@@ -82,8 +92,10 @@ const wineSchema = () => {
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  allWines,
 | 
			
		||||
  allWinesWithoutWinner,
 | 
			
		||||
  addWines,
 | 
			
		||||
  wineById,
 | 
			
		||||
  addWinnerToWine,
 | 
			
		||||
  updateWineById,
 | 
			
		||||
  deleteWineById,
 | 
			
		||||
  deleteWines,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user