Files
LivePoll/backend/src/controllers/poll.controller.js

139 lines
3.1 KiB
JavaScript
Raw Normal View History

2024-11-09 22:31:19 +05:30
import {
createPollService,
2024-11-12 19:47:58 +05:30
createVoteService,
2024-11-09 22:31:19 +05:30
deletePollService,
getAllCreatedPollsService,
getPollDataService,
} from "../services/poll.service.js";
export async function createPollController(req, res) {
try {
2024-11-09 22:31:19 +05:30
const { title, description, options } = req.body;
const user = req.user;
const poll = await createPollService(title, description, options, user._id);
res.status(201).json({
success: true,
message: "Poll created successfully",
data: poll,
});
} catch (err) {
if (err.statusCode) {
res.status(err.statusCode).json({
success: false,
message: err.message,
});
} else {
res.status(500).json({
success: false,
message: err.message,
});
}
}
}
2024-11-09 20:53:28 +05:30
export async function getPollDataController(req, res) {
try {
const pollId = req.params.pollId;
const poll = await getPollDataService(pollId);
res.status(200).json({
success: true,
message: "Poll data fetched successfully",
data: poll,
});
2024-11-09 22:31:19 +05:30
} catch (err) {
2024-11-09 20:53:28 +05:30
if (err.statusCode) {
res.status(err.statusCode).json({
success: false,
message: err.message,
});
} else {
res.status(500).json({
success: false,
message: err.message,
});
}
}
2024-11-09 21:18:01 +05:30
}
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,
});
2024-11-09 22:31:19 +05:30
} 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,
});
}
2024-11-09 21:18:01 +05:30
}
2024-11-09 22:31:19 +05:30
}
export async function deletePollController(req, res) {
try {
const reqPollId = req.params.pollId;
const reqUser = req.user;
const deletedPoll = await deletePollService(reqPollId, reqUser);
2024-11-09 22:31:19 +05:30
res.json({
success : true,
message : "Poll deleted successfully.",
data : deletedPoll
})
}
catch (err) {
2024-11-09 21:18:01 +05:30
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,
});
}
}
2024-11-09 22:31:19 +05:30
}
2024-11-12 19:47:58 +05:30
export const createVoteController = async (req, res) => {
try {
const reqPollId = req.body.pollId;
const reqOptionId = req.body.optionId;
const reqUserId = req.user._id;
const vote = await createVoteService(reqPollId, reqUserId, reqOptionId);
res.json({
success : true,
message : "Vote created 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,
});
}
}
}