From baaf726614a4e0c955a3dd9ccd597b38887357bd Mon Sep 17 00:00:00 2001 From: Manik Maity Date: Sat, 9 Nov 2024 21:18:01 +0530 Subject: [PATCH] =?UTF-8?q?Made=20user=20created=20poll=20route=20?= =?UTF-8?q?=E2=9C=94=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/controllers/poll.controller.js | 28 +++++++++++++++++++++- backend/src/repositories/poll.repo.js | 10 ++++++++ backend/src/routes/v1/poll.route.js | 6 ++--- backend/src/services/poll.service.js | 12 +++++++++- 4 files changed, 51 insertions(+), 5 deletions(-) diff --git a/backend/src/controllers/poll.controller.js b/backend/src/controllers/poll.controller.js index aebdee2..927e112 100644 --- a/backend/src/controllers/poll.controller.js +++ b/backend/src/controllers/poll.controller.js @@ -1,4 +1,4 @@ -import { createPollService, getPollDataService } from "../services/poll.service.js"; +import { createPollService, getAllCreatedPollsService, getPollDataService } from "../services/poll.service.js"; export async function createPollController(req, res) { try { @@ -50,4 +50,30 @@ export async function getPollDataController(req, res) { }); } } +} + +export async function getAllCreatedPollsController(req, res) { + try { + const user = req.user; + const polls = await getAllCreatedPollsService(user._id); + res.status(200).json({ + success: true, + message: "Polls fetched successfully", + data: polls, + }); + } + 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/repositories/poll.repo.js b/backend/src/repositories/poll.repo.js index 75ca2bb..bd13c37 100644 --- a/backend/src/repositories/poll.repo.js +++ b/backend/src/repositories/poll.repo.js @@ -18,4 +18,14 @@ export async function findPollById(id) { catch(err){ throw err; } +} + +export async function findPollsByCreatorId(id) { + try { + const polls = await PollModel.find({creatorId : id}); + return polls; + } + catch(err){ + throw err; + } } \ No newline at end of file diff --git a/backend/src/routes/v1/poll.route.js b/backend/src/routes/v1/poll.route.js index 41b3582..fa4c266 100644 --- a/backend/src/routes/v1/poll.route.js +++ b/backend/src/routes/v1/poll.route.js @@ -1,6 +1,6 @@ import express from "express"; import { verifyToken } from "../../middlwares/verifyToken.js"; -import { createPollController, getPollDataController } from "../../controllers/poll.controller.js"; +import { createPollController, getAllCreatedPollsController, getPollDataController } from "../../controllers/poll.controller.js"; import pollDataSchema from "../../validations/pollDataValidation.js"; import validator from "../../validations/validator.js"; const pollRouter = express.Router(); @@ -59,7 +59,7 @@ pollRouter.get("/test", (req, res) => { * */ pollRouter.post("/create", validator(pollDataSchema), verifyToken, createPollController); - -pollRouter.get("/:pollId", verifyToken, getPollDataController); +pollRouter.get("/data/:pollId", verifyToken, getPollDataController); +pollRouter.get("/created", verifyToken, getAllCreatedPollsController); export default pollRouter; \ No newline at end of file diff --git a/backend/src/services/poll.service.js b/backend/src/services/poll.service.js index 65d8a50..956eeb4 100644 --- a/backend/src/services/poll.service.js +++ b/backend/src/services/poll.service.js @@ -1,5 +1,5 @@ import mongoose from "mongoose"; -import { createPollByData, findPollById } from "../repositories/poll.repo.js"; +import { createPollByData, findPollById, findPollsByCreatorId } from "../repositories/poll.repo.js"; export async function createPollService(title, description, options, userId) { try { @@ -38,4 +38,14 @@ export async function getPollDataService(pollId) { catch(err){ throw err; } +} + +export async function getAllCreatedPollsService(id) { + try { + const polls = await findPollsByCreatorId(id); + return polls; + } + catch(err){ + throw err; + } } \ No newline at end of file