From 096dbdb2e6244c93011ac356ccd9e04720f085c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Mon, 6 Apr 2020 09:36:20 +0200 Subject: [PATCH] MOre sms, and automatic choser --- api/redis.js | 2 +- api/update.js | 54 ++----------------- api/virtualRegistration.js | 107 ++++--------------------------------- 3 files changed, 15 insertions(+), 148 deletions(-) diff --git a/api/redis.js b/api/redis.js index 886bdf1..88c5d13 100644 --- a/api/redis.js +++ b/api/redis.js @@ -1,7 +1,7 @@ let client; try { const redis = require("redis"); - console.log("trying to create"); + console.log("trying to create redis"); client = redis.createClient(); client.on("error", function(err) { client.quit(); diff --git a/api/update.js b/api/update.js index 30a5e10..2aad063 100644 --- a/api/update.js +++ b/api/update.js @@ -11,16 +11,13 @@ const mustBeAuthenticated = require(path.join( __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 Purchase = require(path.join(__dirname + "/../schemas/Purchase")); -const Wine = require(path.join(__dirname + "/../schemas/Wine")); const PreLotteryWine = require(path.join( __dirname + "/../schemas/PreLotteryWine" )); -const VirtualWinner = require(path.join( - __dirname + "/../schemas/VirtualWinner" -)); -const Highscore = require(path.join(__dirname + "/../schemas/Highscore")); router.use((req, res, next) => { next(); @@ -86,53 +83,10 @@ router.route("/log").post(mustBeAuthenticated, async (req, res) => { for (let i = 0; i < winnersBody.length; i++) { let currentWinner = winnersBody[i]; - let wonWine = await Wine.findOne({ name: currentWinner.wine.name }); - 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(); - } - + let wonWine = await _wineFunctions.findSaveWine(currentWinner); winesThisDate.push(wonWine); - const person = await Highscore.findOne({ - 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(); - } + await _personFunctions.findSavePerson(currentWinner, wonWine); } let purchase = new Purchase({ diff --git a/api/virtualRegistration.js b/api/virtualRegistration.js index 91f3758..c6c033c 100644 --- a/api/virtualRegistration.js +++ b/api/virtualRegistration.js @@ -7,12 +7,12 @@ mongoose.connect("mongodb://localhost:27017/vinlottis", { 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 VirtualWinner = require(path.join( __dirname + "/../schemas/VirtualWinner" )); -const Highscore = require(path.join(__dirname + "/../schemas/Highscore")); -const Wine = require(path.join(__dirname + "/../schemas/Wine")); const PreLotteryWine = require(path.join( __dirname + "/../schemas/PreLotteryWine" )); @@ -86,63 +86,19 @@ router.route("/:id").post(async (req, res) => { }); } - let wonWine = await Wine.findOne({ name: prelotteryWine.name }); - 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(); - } - + let wonWine = await _wineFunctions.findSaveWine(prelotteryWine); await prelotteryWine.delete(); - - 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 _personFunctions.findSavePerson(foundWinner, wonWine); await foundWinner.delete(); - let prelotteryWine = await PreLotteryWine.find(); + let nextWineBottle = await PreLotteryWine.find(); 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]); startTimeout(id); - } else if (nextWinner.length == 1 && prelotteryWine.length == 1) { - chooseForUser(nextWinner[0], prelotteryWine[0]); + } else if (nextWinner.length == 1 && nextWineBottle.length == 1) { + chooseForUser(nextWinner[0], nextWineBottle[0]); } res.json({ @@ -154,51 +110,8 @@ router.route("/:id").post(async (req, res) => { async function chooseForUser(winner, prelotteryWine) { let date = new Date(); date.setHours(5, 0, 0, 0); - let wonWine = await Wine.findOne({ name: prelotteryWine.name }); - 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(); - } - - 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(); - } + let wonWine = await _wineFunctions.findSaveWine(prelotteryWine); + await _personFunctions.findSavePerson(winner, wonWine); await prelotteryWine.delete(); Message.sendWonWineMessage(winner, prelotteryWine);