70 lines
1.5 KiB
JavaScript
70 lines
1.5 KiB
JavaScript
const express = require("express");
|
|
const path = require("path");
|
|
const RequestedWine = require(path.join(
|
|
__dirname, "/schemas/RequestedWine"
|
|
));
|
|
const Wine = require(path.join(
|
|
__dirname, "/schemas/Wine"
|
|
));
|
|
|
|
const deleteRequestedWineById = async (req, res) => {
|
|
const { id } = req.params;
|
|
if(id == null){
|
|
return res.json({
|
|
message: "Id er ikke definert",
|
|
success: false
|
|
})
|
|
}
|
|
|
|
await RequestedWine.deleteOne({wineId: id})
|
|
return res.json({
|
|
message: `Slettet vin med id: ${id}`,
|
|
success: true
|
|
});
|
|
}
|
|
|
|
const getAllRequestedWines = async (req, res) => {
|
|
const allWines = await RequestedWine.find({}).populate("wine");
|
|
|
|
return res.json(allWines);
|
|
}
|
|
|
|
const requestNewWine = async (req, res) => {
|
|
const {wine} = req.body
|
|
|
|
let thisWineIsLOKO = await Wine.findOne({id: wine.id})
|
|
|
|
if(thisWineIsLOKO == undefined){
|
|
thisWineIsLOKO = new Wine({
|
|
name: wine.name,
|
|
vivinoLink: wine.vivinoLink,
|
|
rating: null,
|
|
occurences: null,
|
|
image: wine.image,
|
|
id: wine.id
|
|
});
|
|
await thisWineIsLOKO.save()
|
|
}
|
|
|
|
let requestedWine = await RequestedWine.findOne({ "wineId": wine.id})
|
|
|
|
if(requestedWine == undefined){
|
|
requestedWine = new RequestedWine({
|
|
count: 1,
|
|
wineId: wine.id,
|
|
wine: thisWineIsLOKO
|
|
})
|
|
} else {
|
|
requestedWine.count += 1;
|
|
}
|
|
await requestedWine.save()
|
|
|
|
return res.send(requestedWine);
|
|
}
|
|
|
|
module.exports = {
|
|
requestNewWine,
|
|
getAllRequestedWines,
|
|
deleteRequestedWineById
|
|
};
|