working delete requested wine if admin
This commit is contained in:
		@@ -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")
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								src/api.js
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								src/api.js
									
									
									
									
									
								
							@@ -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,
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
 
 | 
			
		||||
@@ -19,11 +19,16 @@
 | 
			
		||||
          class="wine-link"
 | 
			
		||||
        >Les mer på 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>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user