loko
This commit is contained in:
60
api/request.js
Normal file
60
api/request.js
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
const express = require("express");
|
||||||
|
const path = require("path");
|
||||||
|
const router = express.Router();
|
||||||
|
const fetch = require('node-fetch');
|
||||||
|
const { send } = require("process");
|
||||||
|
const RequestedWine = require(path.join(
|
||||||
|
__dirname + "/../schemas/RequestedWine"
|
||||||
|
));
|
||||||
|
const Wine = require(path.join(
|
||||||
|
__dirname + "/../schemas/Wine"
|
||||||
|
));
|
||||||
|
|
||||||
|
router.use((req, res, next) => {
|
||||||
|
next();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
router.route("/request").get(async (req, res) => {
|
||||||
|
const rWines = await RequestedWine.find({}).populate("wine")
|
||||||
|
return res.send(rWines)
|
||||||
|
})
|
||||||
|
|
||||||
|
router.route("/request").post(async (req, res) => {
|
||||||
|
const {wine} = req.body
|
||||||
|
console.log(wine)
|
||||||
|
|
||||||
|
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()
|
||||||
|
}
|
||||||
|
console.log(thisWineIsLOKO)
|
||||||
|
|
||||||
|
let requestedWine = await RequestedWine.findOne({ "wineId": wine.id})
|
||||||
|
|
||||||
|
if(requestedWine == undefined){
|
||||||
|
// console.log(localWine)
|
||||||
|
requestedWine = new RequestedWine({
|
||||||
|
count: 1,
|
||||||
|
wineId: wine.id,
|
||||||
|
wine: thisWineIsLOKO
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
requestedWine.count += 1;
|
||||||
|
}
|
||||||
|
await requestedWine.save()
|
||||||
|
|
||||||
|
res.send(requestedWine);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
@@ -14,11 +14,13 @@ const convertToOurWineObject = wine => {
|
|||||||
if(wine.basic.ageLimit === "18"){
|
if(wine.basic.ageLimit === "18"){
|
||||||
return {
|
return {
|
||||||
name: wine.basic.productShortName,
|
name: wine.basic.productShortName,
|
||||||
image: `https://bilder.vinmonopolet.no/cache/300x300-0/${wine.basic.productId}-1.jpg`,
|
vivinoLink: "https://www.vinmonopolet.no/p/" + wine.basic.productId,
|
||||||
rating: wine.basic.alcoholContent,
|
rating: wine.basic.alcoholContent,
|
||||||
price: wine.prices[0].salesPrice,
|
occurences: 0,
|
||||||
country: wine.origins.origin.country,
|
id: wine.basic.productId,
|
||||||
vivinoLink: "https://www.vinmonopolet.no/p/" + wine.basic.productId
|
image: `https://bilder.vinmonopolet.no/cache/300x300-0/${wine.basic.productId}-1.jpg`,
|
||||||
|
price: wine.prices[0].salesPrice.toString(),
|
||||||
|
country: wine.origins.origin.country
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -34,8 +36,8 @@ router.route("/wineinfo/search").get(async (req, res) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.then(resp => resp.json())
|
.then(resp => resp.json())
|
||||||
|
.catch(err => console.error(err))
|
||||||
|
|
||||||
const winesConverted = vinmonopoletResponse.map(convertToOurWineObject).filter(Boolean)
|
|
||||||
|
|
||||||
if (vinmonopoletResponse.errors != null) {
|
if (vinmonopoletResponse.errors != null) {
|
||||||
return vinmonopoletResponse.errors.map(error => {
|
return vinmonopoletResponse.errors.map(error => {
|
||||||
@@ -48,7 +50,7 @@ router.route("/wineinfo/search").get(async (req, res) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const winesConverted = vinmonopoletResponse.map(convertToOurWineObject).filter(Boolean)
|
||||||
res.send(winesConverted);
|
res.send(winesConverted);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ const retrieveApi = require(path.join(__dirname + "/api/retrieve"));
|
|||||||
const subscriptionApi = require(path.join(__dirname + "/api/subscriptions"));
|
const subscriptionApi = require(path.join(__dirname + "/api/subscriptions"));
|
||||||
const loginApi = require(path.join(__dirname + "/api/login"));
|
const loginApi = require(path.join(__dirname + "/api/login"));
|
||||||
const wineinfoApi = require(path.join(__dirname + "/api/wineinfo"));
|
const wineinfoApi = require(path.join(__dirname + "/api/wineinfo"));
|
||||||
|
const requestApi = require(path.join(__dirname + "/api/request"));
|
||||||
const virtualApi = require(path.join(__dirname + "/api/virtualLottery"));
|
const virtualApi = require(path.join(__dirname + "/api/virtualLottery"));
|
||||||
const virtualRegistrationApi = require(path.join(
|
const virtualRegistrationApi = require(path.join(
|
||||||
__dirname + "/api/virtualRegistration"
|
__dirname + "/api/virtualRegistration"
|
||||||
@@ -94,6 +95,7 @@ app.use("/", loginApi);
|
|||||||
app.use("/api/", updateApi);
|
app.use("/api/", updateApi);
|
||||||
app.use("/api/", retrieveApi);
|
app.use("/api/", retrieveApi);
|
||||||
app.use("/api/", wineinfoApi);
|
app.use("/api/", wineinfoApi);
|
||||||
|
app.use("/api/", requestApi);
|
||||||
app.use("/api/", chatHistory);
|
app.use("/api/", chatHistory);
|
||||||
app.use("/api/lottery", lottery);
|
app.use("/api/lottery", lottery);
|
||||||
app.use("/api/virtual/", virtualApi(io));
|
app.use("/api/virtual/", virtualApi(io));
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section class="buttons">
|
<section class="buttons">
|
||||||
<button class="vin-button">Send inn denne som ønske</button>
|
<button class="vin-button" @click="request(wine)">Send inn denne som ønske</button>
|
||||||
<a
|
<a
|
||||||
v-if="wine.vivinoLink"
|
v-if="wine.vivinoLink"
|
||||||
:href="wine.vivinoLink"
|
:href="wine.vivinoLink"
|
||||||
@@ -58,10 +58,28 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
fetchWineFromVin(){
|
fetchWineFromVin(){
|
||||||
if(this.searchString){
|
if(this.searchString){
|
||||||
searchForWine(this.searchString)
|
this.wines = []
|
||||||
|
let localSearchString = this.searchString.replace(/ /g,"_");
|
||||||
|
searchForWine(localSearchString)
|
||||||
.then(res => this.wines = res)
|
.then(res => this.wines = res)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
request(wine){
|
||||||
|
const options = {
|
||||||
|
body: JSON.stringify({
|
||||||
|
wine: wine
|
||||||
|
}),
|
||||||
|
headers: {
|
||||||
|
'Accept': 'application/json',
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
method: "post"
|
||||||
|
}
|
||||||
|
|
||||||
|
fetch("http://localhost:30030/api/request", options)
|
||||||
|
.then(res => res.json())
|
||||||
|
.then(console.log)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user