working delete requested wine if admin

This commit is contained in:
Adrian Thompson
2020-09-01 10:17:17 +02:00
parent 1c95244850
commit a5ae46f5c3
4 changed files with 48 additions and 6 deletions

View File

@@ -9,11 +9,18 @@ const RequestedWine = require(path.join(
const Wine = require(path.join(
__dirname + "/../schemas/Wine"
));
const mustBeAuthenticated = require(path.join(
__dirname + "/../middleware/mustBeAuthenticated"
));
router.use((req, res, next) => {
next();
});
router.route("/request/").delete(mustBeAuthenticated, async (req, res) => {
await RequestedWine.deleteOne({wineId: req.body.id})
res.json(true);
})
router.route("/request").get(async (req, res) => {
const rWines = await RequestedWine.find({}).populate("wine")

View File

@@ -100,6 +100,21 @@ const winners = () => {
return fetch(url.href).then(resp => resp.json());
};
const deleteRequestedWine = wineToBeDeleted => {
console.log("when do i get here", wineToBeDeleted)
const url = new URL("api/request", BASE_URL);
const options = {
headers: {
"Content-Type": "application/json"
},
method: "DELETE",
body: JSON.stringify(wineToBeDeleted)
};
return fetch(url.href, options).then(resp => resp.json())
}
const deleteWinners = () => {
const url = new URL("/api/virtual/winners", BASE_URL);
@@ -302,6 +317,7 @@ export {
winnersSecure,
deleteWinners,
deleteAttendees,
deleteRequestedWine,
getChatHistory,
finishedDraw,
getAmIWinner,

View File

@@ -1,10 +1,10 @@
<template>
<main>
<h1>
Alle viner foreslåtte viner
Alle foreslåtte viner
</h1>
<section class="requested-wines-container">
<RequestedWineCard v-for="requestedEl in wines" :key="requestedEl.id" :requestedElement="requestedEl" />
<RequestedWineCard v-for="requestedEl in wines" :key="requestedEl.id" :requestedElement="requestedEl" @deletedOne="refreshData" />
</section>
</main>
</template>
@@ -22,9 +22,14 @@ export default {
canRequest: true
}
},
async mounted() {
const wines = await allRequestedWines();
this.wines = wines
methods: {
async refreshData(){
const wines = await allRequestedWines()
this.wines = wines
}
},
mounted() {
this.refreshData()
}
}
</script>

View File

@@ -19,11 +19,16 @@
class="wine-link"
>Les mer polet</a>
</section>
<button @click="deleteWine(wine)">
Slett vinen
</button>
</section>
</div>
</template>
<script>
import { deleteRequestedWine } from "@/api";
export default {
data(){
return {
@@ -40,7 +45,6 @@ export default {
methods: {
request(wine){
this.locallyRequested = true
// wine.requested = true
this.requestedElement.count = this.requestedElement.count +1
const options = {
body: JSON.stringify({
@@ -55,6 +59,16 @@ export default {
fetch("http://localhost:30030/api/request", options)
.then(res => res.json())
},
async deleteWine(wine) {
if (window.confirm("Er du sikker på at du vil slette vinen?")) {
let response = await deleteRequestedWine(wine);
if (response) {
this.$emit('deletedOne');
} else {
alert("Klarte ikke hente ut vinnere");
}
}
},
},
}
</script>