Added get user bookmark🔖
This commit is contained in:
@@ -4,6 +4,7 @@ import {
|
||||
createVoteService,
|
||||
deletePollService,
|
||||
getAllCreatedPollsService,
|
||||
getBookmarkPollService,
|
||||
getPollDataService,
|
||||
} from "../services/poll.service.js";
|
||||
|
||||
@@ -162,3 +163,29 @@ export const addToBookmarkController = async (req, res) => {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const getBookmarkPollController = async (req, res) => {
|
||||
try {
|
||||
const reqUser = req.user;
|
||||
const data = await getBookmarkPollService(reqUser._id);
|
||||
res.json({
|
||||
success: true,
|
||||
message: "Bookmarked Polls fetched successfully",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
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,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -61,3 +61,12 @@ export async function removePollIdFromBookmark(userId, pollId) {
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
export async function getUserBookmarkedPolls(userId) {
|
||||
try {
|
||||
const user = await UserModel.findById(userId).populate("bookmarks");
|
||||
return user.bookmarks;
|
||||
} catch (err) {
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
import express from "express";
|
||||
import { verifyToken } from "../../middlwares/verifyToken.js";
|
||||
import { addToBookmarkController, createPollController, createVoteController, deletePollController, getAllCreatedPollsController, getPollDataController } from "../../controllers/poll.controller.js";
|
||||
import { addToBookmarkController, createPollController, createVoteController, deletePollController, getAllCreatedPollsController, getBookmarkPollController, getPollDataController } from "../../controllers/poll.controller.js";
|
||||
import pollDataSchema from "../../validations/pollDataValidation.js";
|
||||
import validator from "../../validations/validator.js";
|
||||
import voteSchema from "../../validations/voteValidation.js";
|
||||
@@ -180,4 +180,20 @@ pollRouter.post("/vote", validator(voteSchema), verifyToken, createVoteControlle
|
||||
* */
|
||||
pollRouter.get("/bookmark/:pollId", verifyToken, addToBookmarkController);
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /poll/bookmarks:
|
||||
* get:
|
||||
* summary: Get bookmarked polls
|
||||
* tags: [Bookmark]
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Bookmarked polls fetched successfully
|
||||
* 401:
|
||||
* description: Unauthorized
|
||||
* 500:
|
||||
* description: Internal server error
|
||||
*/
|
||||
pollRouter.get("/bookmarks", verifyToken, getBookmarkPollController);
|
||||
|
||||
export default pollRouter;
|
||||
@@ -12,6 +12,7 @@ import {
|
||||
} from "../repositories/vote.repo.js";
|
||||
import {
|
||||
addPollIdToBookmark,
|
||||
getUserBookmarkedPolls,
|
||||
removePollIdFromBookmark,
|
||||
} from "../repositories/user.repo.js";
|
||||
|
||||
@@ -140,3 +141,13 @@ export async function addToBookMarkService(pollId, user) {
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export async function getBookmarkPollService(userId) {
|
||||
try {
|
||||
const data = await getUserBookmarkedPolls(userId);
|
||||
return data;
|
||||
} catch (err) {
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user