Api files no longer return router, exports usable functions.
This commit is contained in:
@@ -1,21 +1,13 @@
|
||||
const express = require('express');
|
||||
const path = require('path');
|
||||
|
||||
const router = express.Router();
|
||||
const mongoose = require('mongoose');
|
||||
mongoose.connect('mongodb://localhost:27017/vinlottis', {
|
||||
useNewUrlParser: true
|
||||
})
|
||||
|
||||
const mustBeAuthenticated = require(path.join(
|
||||
__dirname + '/../middleware/mustBeAuthenticated'
|
||||
));
|
||||
const config = require(path.join(__dirname + '/../config/defaults/lottery'));
|
||||
|
||||
const Highscore = require(path.join(__dirname + '/../schemas/Highscore'));
|
||||
const Wine = require(path.join(__dirname + '/../schemas/Wine'));
|
||||
|
||||
|
||||
// Utils
|
||||
const epochToDateString = date => new Date(parseInt(date)).toDateString();
|
||||
|
||||
@@ -62,7 +54,7 @@ const resolveWineReferences = listWithWines => {
|
||||
}
|
||||
|
||||
// Routes
|
||||
router.route('/all').get((req, res) => {
|
||||
const all = (req, res) => {
|
||||
return Highscore.find()
|
||||
.then(highscore => getHighscoreByDates(highscore))
|
||||
.then(groupedLotteries => groupedHighscoreToSortedList(groupedLotteries))
|
||||
@@ -70,9 +62,19 @@ router.route('/all').get((req, res) => {
|
||||
message: "Lotteries by date!",
|
||||
lotteries
|
||||
}))
|
||||
})
|
||||
}
|
||||
|
||||
router.route('/by-date/:date').get((req, res) => {
|
||||
const latest = (req, res) => {
|
||||
return Highscore.find()
|
||||
.then(highscore => getHighscoreByDates(highscore))
|
||||
.then(groupedLotteries => groupedHighscoreToSortedList(groupedLotteries))
|
||||
.then(lotteries => res.send({
|
||||
message: "Latest lottery!",
|
||||
lottery: lotteries.slice(-1).pop()
|
||||
}))
|
||||
}
|
||||
|
||||
const byEpochDate = (req, res) => {
|
||||
const { date } = req.params;
|
||||
const dateString = epochToDateString(date);
|
||||
|
||||
@@ -92,10 +94,10 @@ router.route('/by-date/:date').get((req, res) => {
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
router.route("/by-name").get((req, res) => {
|
||||
const { name } = req.query;
|
||||
const byName = (req, res) => {
|
||||
const { name } = req.params;
|
||||
|
||||
return Highscore.find({ name })
|
||||
.then(async (highscore) => {
|
||||
@@ -113,6 +115,11 @@ router.route("/by-name").get((req, res) => {
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = router;
|
||||
module.exports = {
|
||||
all,
|
||||
latest,
|
||||
byEpochDate,
|
||||
byName
|
||||
};
|
||||
|
||||
@@ -13,23 +13,19 @@ const PreLotteryWine = require(path.join(
|
||||
__dirname + "/../schemas/PreLotteryWine"
|
||||
));
|
||||
|
||||
router.use((req, res, next) => {
|
||||
next();
|
||||
});
|
||||
|
||||
router.route("/wines/prelottery").get(async (req, res) => {
|
||||
const prelotteryWines = async (req, res) => {
|
||||
let wines = await PreLotteryWine.find();
|
||||
res.json(wines);
|
||||
});
|
||||
return res.json(wines);
|
||||
};
|
||||
|
||||
router.route("/purchase/statistics").get(async (req, res) => {
|
||||
const allPurchase = async (req, res) => {
|
||||
let purchases = await Purchase.find()
|
||||
.populate("wines")
|
||||
.sort({ date: 1 });
|
||||
res.json(purchases);
|
||||
});
|
||||
return res.json(purchases);
|
||||
};
|
||||
|
||||
router.route("/purchase/statistics/color").get(async (req, res) => {
|
||||
const purchaseByColor = async (req, res) => {
|
||||
const countColor = await Purchase.find();
|
||||
let red = 0;
|
||||
let blue = 0;
|
||||
@@ -75,7 +71,7 @@ router.route("/purchase/statistics/color").get(async (req, res) => {
|
||||
|
||||
const total = red + yellow + blue + green;
|
||||
|
||||
res.json({
|
||||
return res.json({
|
||||
red: {
|
||||
total: red,
|
||||
win: redWin
|
||||
@@ -95,21 +91,21 @@ router.route("/purchase/statistics/color").get(async (req, res) => {
|
||||
stolen: stolen,
|
||||
total: total
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
router.route("/highscore/statistics").get(async (req, res) => {
|
||||
const highscore = async (req, res) => {
|
||||
const highscore = await Highscore.find().populate("wins.wine");
|
||||
|
||||
res.json(highscore);
|
||||
});
|
||||
return res.json(highscore);
|
||||
};
|
||||
|
||||
router.route("/wines/statistics").get(async (req, res) => {
|
||||
const allWines = async (req, res) => {
|
||||
const wines = await Wine.find();
|
||||
|
||||
res.json(wines);
|
||||
});
|
||||
return res.json(wines);
|
||||
};
|
||||
|
||||
router.route("/wines/statistics/overall").get(async (req, res) => {
|
||||
const allWinesSummary = async (req, res) => {
|
||||
const highscore = await Highscore.find().populate("wins.wine");
|
||||
let wines = {};
|
||||
|
||||
@@ -149,7 +145,14 @@ router.route("/wines/statistics/overall").get(async (req, res) => {
|
||||
}
|
||||
}
|
||||
|
||||
res.json(Object.values(wines));
|
||||
});
|
||||
return res.json(Object.values(wines));
|
||||
};
|
||||
|
||||
module.exports = router;
|
||||
module.exports = {
|
||||
prelotteryWines,
|
||||
allPurchase,
|
||||
purchaseByColor,
|
||||
highscore,
|
||||
allWines,
|
||||
allWinesSummary
|
||||
};
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
const express = require("express");
|
||||
const path = require("path");
|
||||
const router = express.Router();
|
||||
const mongoose = require("mongoose");
|
||||
mongoose.connect("mongodb://localhost:27017/vinlottis", {
|
||||
useNewUrlParser: true
|
||||
});
|
||||
|
||||
const sub = require(path.join(__dirname + "/../api/subscriptions"));
|
||||
const mustBeAuthenticated = require(path.join(
|
||||
__dirname + "/../middleware/mustBeAuthenticated"
|
||||
));
|
||||
|
||||
const _wineFunctions = require(path.join(__dirname + "/../api/wine"));
|
||||
const _personFunctions = require(path.join(__dirname + "/../api/person"));
|
||||
@@ -19,11 +15,7 @@ const PreLotteryWine = require(path.join(
|
||||
__dirname + "/../schemas/PreLotteryWine"
|
||||
));
|
||||
|
||||
router.use((req, res, next) => {
|
||||
next();
|
||||
});
|
||||
|
||||
router.route("/log/wines").post(mustBeAuthenticated, async (req, res) => {
|
||||
const submitWines = async (req, res) => {
|
||||
const wines = req.body;
|
||||
for (let i = 0; i < wines.length; i++) {
|
||||
let wine = wines[i];
|
||||
@@ -50,20 +42,20 @@ router.route("/log/wines").post(mustBeAuthenticated, async (req, res) => {
|
||||
sub.sendNotification(subscription, message);
|
||||
}
|
||||
|
||||
res.send(true);
|
||||
});
|
||||
return res.send(true);
|
||||
};
|
||||
|
||||
router.route("/log/schema").get(mustBeAuthenticated, async (req, res) => {
|
||||
const schema = async (req, res) => {
|
||||
let schema = { ...PreLotteryWine.schema.obj };
|
||||
let nulledSchema = Object.keys(schema).reduce((accumulator, current) => {
|
||||
accumulator[current] = "";
|
||||
return accumulator;
|
||||
return accumulator
|
||||
}, {});
|
||||
|
||||
res.send(nulledSchema);
|
||||
});
|
||||
return res.send(nulledSchema);
|
||||
}
|
||||
|
||||
router.route("/log").post(mustBeAuthenticated, async (req, res) => {
|
||||
const submitLottery = async (req, res) => {
|
||||
await PreLotteryWine.deleteMany();
|
||||
|
||||
const purchaseBody = req.body.purchase;
|
||||
@@ -102,7 +94,11 @@ router.route("/log").post(mustBeAuthenticated, async (req, res) => {
|
||||
|
||||
await purchase.save();
|
||||
|
||||
res.send(true);
|
||||
});
|
||||
return res.send(true);
|
||||
};
|
||||
|
||||
module.exports = router;
|
||||
module.exports = {
|
||||
submitWines,
|
||||
schema,
|
||||
submitLottery
|
||||
};
|
||||
|
||||
@@ -1,15 +1,7 @@
|
||||
const express = require("express");
|
||||
const path = require("path");
|
||||
const router = express.Router();
|
||||
const fetch = require('node-fetch')
|
||||
const path = require('path')
|
||||
|
||||
const mustBeAuthenticated = require(path.join(__dirname + "/../middleware/mustBeAuthenticated"))
|
||||
|
||||
router.use((req, res, next) => {
|
||||
next();
|
||||
});
|
||||
|
||||
router.route("/wineinfo/:ean").get(async (req, res) => {
|
||||
const byEAN = async (req, res) => {
|
||||
const vinmonopoletResponse = await fetch("https://app.vinmonopolet.no/vmpws/v2/vmp/products/barCodeSearch/" + req.params.ean)
|
||||
.then(resp => resp.json())
|
||||
|
||||
@@ -25,7 +17,9 @@ router.route("/wineinfo/:ean").get(async (req, res) => {
|
||||
})
|
||||
}
|
||||
|
||||
res.send(vinmonopoletResponse);
|
||||
});
|
||||
return res.send(vinmonopoletResponse);
|
||||
};
|
||||
|
||||
module.exports = router;
|
||||
module.exports = {
|
||||
byEAN
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user