Added delete poll route in backend
This commit is contained in:
@@ -1,8 +1,13 @@
|
|||||||
import { createPollService, getAllCreatedPollsService, getPollDataService } from "../services/poll.service.js";
|
import {
|
||||||
|
createPollService,
|
||||||
|
deletePollService,
|
||||||
|
getAllCreatedPollsService,
|
||||||
|
getPollDataService,
|
||||||
|
} from "../services/poll.service.js";
|
||||||
|
|
||||||
export async function createPollController(req, res) {
|
export async function createPollController(req, res) {
|
||||||
try {
|
try {
|
||||||
const {title, description, options} = req.body;
|
const { title, description, options } = req.body;
|
||||||
const user = req.user;
|
const user = req.user;
|
||||||
const poll = await createPollService(title, description, options, user._id);
|
const poll = await createPollService(title, description, options, user._id);
|
||||||
res.status(201).json({
|
res.status(201).json({
|
||||||
@@ -10,7 +15,6 @@ export async function createPollController(req, res) {
|
|||||||
message: "Poll created successfully",
|
message: "Poll created successfully",
|
||||||
data: poll,
|
data: poll,
|
||||||
});
|
});
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (err.statusCode) {
|
if (err.statusCode) {
|
||||||
res.status(err.statusCode).json({
|
res.status(err.statusCode).json({
|
||||||
@@ -26,7 +30,6 @@ export async function createPollController(req, res) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export async function getPollDataController(req, res) {
|
export async function getPollDataController(req, res) {
|
||||||
try {
|
try {
|
||||||
const pollId = req.params.pollId;
|
const pollId = req.params.pollId;
|
||||||
@@ -36,8 +39,7 @@ export async function getPollDataController(req, res) {
|
|||||||
message: "Poll data fetched successfully",
|
message: "Poll data fetched successfully",
|
||||||
data: poll,
|
data: poll,
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err) {
|
|
||||||
if (err.statusCode) {
|
if (err.statusCode) {
|
||||||
res.status(err.statusCode).json({
|
res.status(err.statusCode).json({
|
||||||
success: false,
|
success: false,
|
||||||
@@ -61,8 +63,7 @@ export async function getAllCreatedPollsController(req, res) {
|
|||||||
message: "Polls fetched successfully",
|
message: "Polls fetched successfully",
|
||||||
data: polls,
|
data: polls,
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err) {
|
|
||||||
console.log(err);
|
console.log(err);
|
||||||
if (err.statusCode) {
|
if (err.statusCode) {
|
||||||
res.status(err.statusCode).json({
|
res.status(err.statusCode).json({
|
||||||
@@ -76,4 +77,30 @@ export async function getAllCreatedPollsController(req, res) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function deletePollController(req, res) {
|
||||||
|
try {
|
||||||
|
const reqPollId = req.params.pollId;
|
||||||
|
const deletedPoll = await deletePollService(reqPollId, req.user);
|
||||||
|
res.json({
|
||||||
|
success : true,
|
||||||
|
message : "Poll deleted successfully.",
|
||||||
|
data : deletedPoll
|
||||||
|
})
|
||||||
|
}
|
||||||
|
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,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -83,4 +83,5 @@ export async function logOutController(req, res) {
|
|||||||
message : err.message
|
message : err.message
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,4 +28,14 @@ export async function findPollsByCreatorId(id) {
|
|||||||
catch(err){
|
catch(err){
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function deletePollById(id) {
|
||||||
|
try {
|
||||||
|
const poll = await PollModel.findByIdAndDelete(id);
|
||||||
|
return poll;
|
||||||
|
}
|
||||||
|
catch(err){
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import express from "express";
|
import express from "express";
|
||||||
import { verifyToken } from "../../middlwares/verifyToken.js";
|
import { verifyToken } from "../../middlwares/verifyToken.js";
|
||||||
import { createPollController, getAllCreatedPollsController, getPollDataController } from "../../controllers/poll.controller.js";
|
import { createPollController, deletePollController, getAllCreatedPollsController, getPollDataController } from "../../controllers/poll.controller.js";
|
||||||
import pollDataSchema from "../../validations/pollDataValidation.js";
|
import pollDataSchema from "../../validations/pollDataValidation.js";
|
||||||
import validator from "../../validations/validator.js";
|
import validator from "../../validations/validator.js";
|
||||||
const pollRouter = express.Router();
|
const pollRouter = express.Router();
|
||||||
@@ -99,4 +99,6 @@ pollRouter.get("/data/:pollId", verifyToken, getPollDataController);
|
|||||||
*/
|
*/
|
||||||
pollRouter.get("/created", verifyToken, getAllCreatedPollsController);
|
pollRouter.get("/created", verifyToken, getAllCreatedPollsController);
|
||||||
|
|
||||||
|
pollRouter.delete("/delete/:pollId", verifyToken, deletePollController);
|
||||||
|
|
||||||
export default pollRouter;
|
export default pollRouter;
|
||||||
@@ -45,6 +45,32 @@ export async function getAllCreatedPollsService(id) {
|
|||||||
const polls = await findPollsByCreatorId(id);
|
const polls = await findPollsByCreatorId(id);
|
||||||
return polls;
|
return polls;
|
||||||
}
|
}
|
||||||
|
catch(err){
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function deletePollService(pollId, user) {
|
||||||
|
try {
|
||||||
|
const userId = user._id;
|
||||||
|
const poll = await findPollById(pollId);
|
||||||
|
if (!poll) {
|
||||||
|
throw {
|
||||||
|
statusCode: 404,
|
||||||
|
message: "Poll not found"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(poll?.creatorId._id.toString(), userId.toString(), user);
|
||||||
|
if (poll.creatorId._id.toString() !== userId.toString()) {
|
||||||
|
throw {
|
||||||
|
statusCode: 401,
|
||||||
|
message: "Unauthorized"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const deletedPoll = await deletePollService(pollId);
|
||||||
|
return deletedPoll;
|
||||||
|
}
|
||||||
|
|
||||||
catch(err){
|
catch(err){
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user