From 131b921d9660a2ff4a5ede6f2e45fdac1264c6fd Mon Sep 17 00:00:00 2001 From: Manik Maity Date: Wed, 13 Nov 2024 21:43:10 +0530 Subject: [PATCH] Added get voted details route --- backend/src/controllers/vote.controller.js | 29 +++++++++++++++++++++- backend/src/routes/v1/vote.route.js | 4 +-- backend/src/services/vote.service.js | 14 +++++++++++ 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/backend/src/controllers/vote.controller.js b/backend/src/controllers/vote.controller.js index c40debc..4a058df 100644 --- a/backend/src/controllers/vote.controller.js +++ b/backend/src/controllers/vote.controller.js @@ -1,4 +1,4 @@ -import { voteMessageTestService } from "../services/vote.service.js"; +import { getPollVoteService, voteMessageTestService } from "../services/vote.service.js"; export async function voteTestController(req, res) { try{ @@ -22,4 +22,31 @@ export async function voteTestController(req, res) { }); } } +} + +export async function getPollVoteController(req, res) { + try { + const pollId = req.params.pollId; + const userId = req.user._id; + const vote = await getPollVoteService(pollId, userId); + res.status(200).json({ + success: true, + message: "Poll data fetched successfully", + data: vote, + }); + } + catch (err) { + console.log(err); + if (err.statusCode) { + res.status(err.statusCode).json({ + success: false, + message: err.message, + }); + } else { + res.status(500).json({ + success: false, + message: err.message, + }); + } + } } \ No newline at end of file diff --git a/backend/src/routes/v1/vote.route.js b/backend/src/routes/v1/vote.route.js index 5403480..c6ee0b1 100644 --- a/backend/src/routes/v1/vote.route.js +++ b/backend/src/routes/v1/vote.route.js @@ -1,6 +1,6 @@ import express from "express"; import { verifyToken } from "../../middlwares/verifyToken.js"; -import { voteTestController } from "../../controllers/vote.controller.js"; +import { getPollVoteController, voteTestController } from "../../controllers/vote.controller.js"; const voteRouter = express.Router(); /** @@ -14,6 +14,6 @@ const voteRouter = express.Router(); * description: Success */ voteRouter.get("/test", voteTestController) -// voteRouter.get("/voted/:pollId", verifyToken, getVotedDataController); +voteRouter.get("/voted/:pollId", verifyToken, getPollVoteController); export default voteRouter; \ No newline at end of file diff --git a/backend/src/services/vote.service.js b/backend/src/services/vote.service.js index 566d8aa..a3ddddb 100644 --- a/backend/src/services/vote.service.js +++ b/backend/src/services/vote.service.js @@ -1,3 +1,6 @@ +import mongoose from "mongoose"; +import { findVoteByPollIdAndUserId } from "../repositories/vote.repo.js"; + export function voteMessageTestService(){ try{ return "Vote route is working✔️"; @@ -5,4 +8,15 @@ export function voteMessageTestService(){ catch(err){ throw err; } +} + +export function getPollVoteService(pollId, userId) { + try { + const pollIdObjet = new mongoose.Types.ObjectId(pollId); + const vote = findVoteByPollIdAndUserId(pollIdObjet, userId); + return vote; + } + catch (err) { + throw err; + } } \ No newline at end of file