Made user created poll route ✔️

This commit is contained in:
Manik Maity
2024-11-09 21:18:01 +05:30
parent a419f8f917
commit baaf726614
4 changed files with 51 additions and 5 deletions

View File

@@ -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,
});
}
}
}

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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;
}
}