MOre sms, and automatic choser

This commit is contained in:
Kasper Rynning-Tønnesen
2020-04-06 09:36:20 +02:00
parent e6582983f2
commit 096dbdb2e6
3 changed files with 15 additions and 148 deletions

View File

@@ -1,7 +1,7 @@
let client; let client;
try { try {
const redis = require("redis"); const redis = require("redis");
console.log("trying to create"); console.log("trying to create redis");
client = redis.createClient(); client = redis.createClient();
client.on("error", function(err) { client.on("error", function(err) {
client.quit(); client.quit();

View File

@@ -11,16 +11,13 @@ const mustBeAuthenticated = require(path.join(
__dirname + "/../middleware/mustBeAuthenticated" __dirname + "/../middleware/mustBeAuthenticated"
)); ));
const _wineFunctions = require(path.join(__dirname + "/../api/wine"));
const _personFunctions = require(path.join(__dirname + "/../api/person"));
const Subscription = require(path.join(__dirname + "/../schemas/Subscription")); const Subscription = require(path.join(__dirname + "/../schemas/Subscription"));
const Purchase = require(path.join(__dirname + "/../schemas/Purchase")); const Purchase = require(path.join(__dirname + "/../schemas/Purchase"));
const Wine = require(path.join(__dirname + "/../schemas/Wine"));
const PreLotteryWine = require(path.join( const PreLotteryWine = require(path.join(
__dirname + "/../schemas/PreLotteryWine" __dirname + "/../schemas/PreLotteryWine"
)); ));
const VirtualWinner = require(path.join(
__dirname + "/../schemas/VirtualWinner"
));
const Highscore = require(path.join(__dirname + "/../schemas/Highscore"));
router.use((req, res, next) => { router.use((req, res, next) => {
next(); next();
@@ -86,53 +83,10 @@ router.route("/log").post(mustBeAuthenticated, async (req, res) => {
for (let i = 0; i < winnersBody.length; i++) { for (let i = 0; i < winnersBody.length; i++) {
let currentWinner = winnersBody[i]; let currentWinner = winnersBody[i];
let wonWine = await Wine.findOne({ name: currentWinner.wine.name }); let wonWine = await _wineFunctions.findSaveWine(currentWinner);
if (wonWine == undefined) {
let newWonWine = new Wine({
name: currentWinner.wine.name,
vivinoLink: currentWinner.wine.vivinoLink,
rating: currentWinner.wine.rating,
occurences: 1,
image: currentWinner.wine.image,
id: currentWinner.wine.id
});
await newWonWine.save();
wonWine = newWonWine;
} else {
wonWine.occurences += 1;
wonWine.image = currentWinner.wine.image;
wonWine.id = currentWinner.wine.id;
await wonWine.save();
}
winesThisDate.push(wonWine); winesThisDate.push(wonWine);
const person = await Highscore.findOne({ await _personFunctions.findSavePerson(currentWinner, wonWine);
name: currentWinner.name
});
if (person == undefined) {
let newPerson = new Highscore({
name: currentWinner.name,
wins: [
{
color: currentWinner.color,
date: date,
wine: wonWine
}
]
});
await newPerson.save();
} else {
person.wins.push({
color: currentWinner.color,
date: date,
wine: wonWine
});
person.markModified("wins");
await person.save();
}
} }
let purchase = new Purchase({ let purchase = new Purchase({

View File

@@ -7,12 +7,12 @@ mongoose.connect("mongodb://localhost:27017/vinlottis", {
useNewUrlParser: true useNewUrlParser: true
}); });
const _wineFunctions = require(path.join(__dirname + "/../api/wine"));
const _personFunctions = require(path.join(__dirname + "/../api/person"));
const Message = require(path.join(__dirname + "/../api/message")); const Message = require(path.join(__dirname + "/../api/message"));
const VirtualWinner = require(path.join( const VirtualWinner = require(path.join(
__dirname + "/../schemas/VirtualWinner" __dirname + "/../schemas/VirtualWinner"
)); ));
const Highscore = require(path.join(__dirname + "/../schemas/Highscore"));
const Wine = require(path.join(__dirname + "/../schemas/Wine"));
const PreLotteryWine = require(path.join( const PreLotteryWine = require(path.join(
__dirname + "/../schemas/PreLotteryWine" __dirname + "/../schemas/PreLotteryWine"
)); ));
@@ -86,63 +86,19 @@ router.route("/:id").post(async (req, res) => {
}); });
} }
let wonWine = await Wine.findOne({ name: prelotteryWine.name }); let wonWine = await _wineFunctions.findSaveWine(prelotteryWine);
if (wonWine == undefined) {
let newWonWine = new Wine({
name: prelotteryWine.name,
vivinoLink: prelotteryWine.vivinoLink,
rating: prelotteryWine.rating,
occurences: 1,
image: prelotteryWine.image,
id: prelotteryWine.id
});
await newWonWine.save();
wonWine = newWonWine;
} else {
wonWine.occurences += 1;
wonWine.image = prelotteryWine.image;
wonWine.id = prelotteryWine.id;
await wonWine.save();
}
await prelotteryWine.delete(); await prelotteryWine.delete();
await _personFunctions.findSavePerson(foundWinner, wonWine);
const person = await Highscore.findOne({
name: foundWinner.name
});
if (person == undefined) {
let newPerson = new Highscore({
name: foundWinner.name,
wins: [
{
color: foundWinner.color,
date: date,
wine: wonWine
}
]
});
await newPerson.save();
} else {
person.wins.push({
color: foundWinner.color,
date: date,
wine: wonWine
});
person.markModified("wins");
await person.save();
}
await foundWinner.delete(); await foundWinner.delete();
let prelotteryWine = await PreLotteryWine.find(); let nextWineBottle = await PreLotteryWine.find();
let nextWinner = await VirtualWinner.find().sort({ timestamp_drawn: 1 }); let nextWinner = await VirtualWinner.find().sort({ timestamp_drawn: 1 });
if (nextWinner.length > 1 && prelotteryWine.length > 1) { if (nextWinner.length > 1 && nextWineBottle.length > 1) {
Message.sendMessage(nextWinner[0]); Message.sendMessage(nextWinner[0]);
startTimeout(id); startTimeout(id);
} else if (nextWinner.length == 1 && prelotteryWine.length == 1) { } else if (nextWinner.length == 1 && nextWineBottle.length == 1) {
chooseForUser(nextWinner[0], prelotteryWine[0]); chooseForUser(nextWinner[0], nextWineBottle[0]);
} }
res.json({ res.json({
@@ -154,51 +110,8 @@ router.route("/:id").post(async (req, res) => {
async function chooseForUser(winner, prelotteryWine) { async function chooseForUser(winner, prelotteryWine) {
let date = new Date(); let date = new Date();
date.setHours(5, 0, 0, 0); date.setHours(5, 0, 0, 0);
let wonWine = await Wine.findOne({ name: prelotteryWine.name }); let wonWine = await _wineFunctions.findSaveWine(prelotteryWine);
if (wonWine == undefined) { await _personFunctions.findSavePerson(winner, wonWine);
let newWonWine = new Wine({
name: prelotteryWine.name,
vivinoLink: prelotteryWine.vivinoLink,
rating: prelotteryWine.rating,
occurences: 1,
image: prelotteryWine.image,
id: prelotteryWine.id
});
await newWonWine.save();
wonWine = newWonWine;
} else {
wonWine.occurences += 1;
wonWine.image = prelotteryWine.image;
wonWine.id = prelotteryWine.id;
await wonWine.save();
}
const person = await Highscore.findOne({
name: winner.name
});
if (person == undefined) {
let newPerson = new Highscore({
name: winner.name,
wins: [
{
color: winner.color,
date: date,
wine: wonWine
}
]
});
await newPerson.save();
} else {
person.wins.push({
color: winner.color,
date: date,
wine: wonWine
});
person.markModified("wins");
await person.save();
}
await prelotteryWine.delete(); await prelotteryWine.delete();
Message.sendWonWineMessage(winner, prelotteryWine); Message.sendWonWineMessage(winner, prelotteryWine);