diff --git a/FeedApp/fullstack_db.mv.db b/FeedApp/fullstack_db.mv.db index 0d61d90..595a76b 100644 Binary files a/FeedApp/fullstack_db.mv.db and b/FeedApp/fullstack_db.mv.db differ diff --git a/FeedApp/src/main/java/dat250/group22/FeedApp/controller/PollController.java b/FeedApp/src/main/java/dat250/group22/FeedApp/controller/PollController.java index 676f633..9150b50 100644 --- a/FeedApp/src/main/java/dat250/group22/FeedApp/controller/PollController.java +++ b/FeedApp/src/main/java/dat250/group22/FeedApp/controller/PollController.java @@ -51,10 +51,21 @@ public ResponseEntity createPoll( @RequestHeader("Authorization") String public Poll getPoll(@PathVariable UUID pollId) { return manager.getPoll(pollId); } @DeleteMapping - public void deleteAllPolls() { manager.deleteAllPolls(); } + public void deleteAllPolls() { + manager.deleteAllPolls(); + } @DeleteMapping("/{pollId}") - public void deletePoll(@PathVariable UUID pollId) { manager.deletePoll(pollId); } + public void deletePoll(@RequestHeader("Authorization") String token, @PathVariable UUID pollId) { + String jwt = token.replace("Bearer ", "").trim(); + UUID userId = JwtService.parseToken(jwt); + logger.info("UserId from token: {}", userId); + logger.info("PollId from token: {}", pollId); + logger.info("UserId equals to pollcreatorid: {}", userId == getPoll(pollId).getCreatorUserID()); + if(userId.equals(getPoll(pollId).getCreatorUserID())){ + manager.deletePoll(pollId); + } + } @PutMapping("/{pollId}") public void updatePoll(@PathVariable UUID pollId, @RequestBody Poll poll) { manager.updatePoll(pollId, poll); } diff --git a/Frontend/src/components/SeePolls.vue b/Frontend/src/components/SeePolls.vue index 9c315df..f394f1a 100644 --- a/Frontend/src/components/SeePolls.vue +++ b/Frontend/src/components/SeePolls.vue @@ -58,6 +58,16 @@ async function vote(pollid: string, optionid: number) { } } +// Lets a user delete their own polls +async function deleteOwnPoll(id: string) { + try { + const url = `/polls/${id}` + await defaultFetch(url, 'DELETE', getUserToken()) + } catch (error) { + console.error('Error:', error) + } +} + // Fetch the poll owners async function fetchPollOwners() { try { @@ -90,6 +100,7 @@ fetchPolls()
  • {{ poll.question }} created by: {{ pollOwners[poll.creatorUserID]?.email || 'Unknown' }} +

    X