Untitled
unknown
plain_text
a year ago
92 kB
8
Indexable
/** @format */
require("dotenv").config();
const express = require("express");
const router = express.Router();
const Multer = require("multer");
const uuid = require("uuid");
const uuidv1 = uuid.v1;
const { Storage } = require("@google-cloud/storage");
const { default: mongoose } = require("mongoose");
const { config } = require("dotenv");
const sharp = require("sharp");
const Aerospike = require("aerospike");
const { getAerospikeClient } = require("../../../../databases/aerospike");
const maps = Aerospike.maps;
const { removeStopwords, eng, fra } = require("stopword");
const now = require("nano-time");
const createError = require("http-errors");
const {
blockFetchFullPost,
fetchBlockPost,
fetchBlockSubScriberPost,
blockPostLike,
blockPinnedPost,
blockPostDelete,
blockPostEdit,
blockPostSpam,
blockPostDonate,
fetchAllLikeUsers,
createNewBlockPost,
fetchBlockFeedPosts,
fetchEventFeedPosts,
handleReportPost,
handleGetPostAnalytics,
handleBookmarkPost,
handleFetchFullPostInModal,
handleAddPostLike,
handleRemovePostLike,
handleUpvoteNewsPost,
handleDownvoteNewsPost,
handleFakeNewsPost,
handleFlagPost,
handleExicitedAnnouncementPost,
handleDisapointedAnnouncementPost,
handleMisLeadingAnnouncementPost,
handleUpvoteUsers,
handleExcitedUsers,
handleSharePost,
handleFetchEarning,
handleFetchDonatedUsers,
handleRepostPost,
handleCreateOrUpdateBlockPostBoost,
handleGetBlockPostBoost,
handleFlaggedUsersList,
} = require("../../../model/post/blockPost/blockPostModel");
const {
createBlockPostComment,
fetchAllBlockComments,
fetchSingleBlockCommentMeta,
fetchMyBlockComments,
blockLikeComment,
// blockRemoveLikeComment,
blockDeleteComment,
editBlockComment,
repostBlockComment,
//for replies
createBlockReply,
createBlockReplyReply,
getReplies,
hideCommentReplyModel,
deleteBlockReply,
editBlockReply,
spamBlockReply,
likeBlockReply,
dislikeBlockReply,
handlePinUnpinComment,
fetchBlockCommentsMostReactions,
handleRepostWithQuote,
spamComment,
} = require("../../../model/comment/blockComment/blockPostCommentModel.js");
// const {
// createBlockReply,
// createBlockReplyReply,
// getReplyes,
// hideCommentReplyModel,
// deleteBlockReply,
// editBlockReply,
// spamBlockReply,
// likeBlockReply,
// dislikeBlockReply,
// } = require("../../../model/reply/blockReply/blockPostReply");
const {
createBlockEvent,
addEventInterest,
addEventNotInterest,
addEventJoin,
fetchAllEvents,
fetchSingleEvent,
blockEventDelete,
blockEventJoin,
hideEvent,
handleReportEvent,
} = require("../../../model/post/blockEvent/blockEventModel");
const createHttpError = require("http-errors");
class BlockPostController {
constructor() {}
async blockFeed(req, res, next) {
try {
const page = req.query.page || 1;
const limit = req.query.limit || 10;
const data = await fetchBlockFeedPosts(page, limit);
return res.status(200).json(data);
} catch (error) {
next(error);
}
}
async eventFeed(req, res, next) {
try {
const page = req.query.page || 1;
const limit = req.query.limit || 10;
const data = await fetchEventFeedPosts(page, limit);
return res.status(200).json(data);
} catch (error) {
next(error);
}
}
// fetch group posts
async fetchPosts(req, res) {
console.log("CALL block post");
const client = await getAerospikeClient();
if (!req.params.id) {
return res.status(401).json({ msg: "Group id is not present" });
} else {
const page = Number(req.query.page) || 0;
const limit = Number(req.query.limit) || 10;
const data = await fetchBlockPost(
req.params.id,
page,
limit,
req.query.sortedBy
);
return res.status(200).json(data);
}
}
async fetchSubPosts(req, res) {
console.log("CALL");
const client = await getAerospikeClient();
if (!req.params.id) {
return res.status(401).json({ msg: "Group id is not present" });
} else {
var page = req.query.page || 0;
var limit = req.query.limit || 10;
const data = await fetchBlockSubScriberPost(
req.params.id,
page,
limit,
req.query.sortedBy,
req.user
);
return res.status(200).json(data);
}
}
// Post like ID
async createPostLike(req, res) {
const id = req.params.id;
const client = await getAerospikeClient();
if (!id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const post_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_GROUP_POSTS,
id
);
const post_meta_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_GROUP_POST_META,
id
);
const post_feed_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_POSTS,
id
);
const post = await client.get(post_key);
if (post.bins.l_c > 0) {
console.log("Like count greater than 0");
const meta = await client.get(post_meta_key);
if (meta.bins.likes.includes(req.user.handleUn)) {
console.log("Already like");
const ops = [
Aerospike.lists.removeByValue("likes", req.user.handleUn),
];
client.operate(post_meta_key, ops, (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [Aerospike.operations.incr("l_c", -1)];
client.operate(post_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
if (meta.bins.likes.length === 1) {
const ops = [Aerospike.operations.incr("like", -1)];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "remove Liked post" });
} else {
return res.status(200).json({ msg: "remove Liked post" });
}
}
});
}
});
} else {
console.log("Not like");
if (
meta.bins.haha.includes(req.user.handleUn) ||
meta.bins.angry.includes(req.user.handleUn) ||
meta.bins.dislikes.includes(req.user.handleUn)
) {
console.log("Not like Other");
const ops = [
Aerospike.lists.removeByValue("haha", req.user.handleUn),
Aerospike.lists.removeByValue("angry", req.user.handleUn),
Aerospike.lists.removeByValue("dislikes", req.user.handleUn),
];
client.operate(post_meta_key, ops, (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [
Aerospike.lists.append("likes", req.user.handleUn),
];
client.operate(post_meta_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
// return res.status(200).json({ msg: "You liked this post" });
if (meta.bins.likes.length === 0) {
const ops = [Aerospike.operations.incr("like", 1)];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Liked post" });
} else {
return res.status(200).json({ msg: "Liked post" });
}
}
});
}
});
} else {
const ops = [Aerospike.lists.append("likes", req.user.handleUn)];
client.operate(post_meta_key, ops, (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [Aerospike.operations.incr("l_c", 1)];
client.operate(post_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
// return res.status(200).json({ msg: "Liked post" });
if (meta.bins.likes.length === 0) {
const ops = [Aerospike.operations.incr("like", 1)];
const data = await client.operate(post_key, ops);
// return res.status(200).json({ msg: "Liked post" });
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "Liked post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Liked post" });
} else {
return res.status(200).json({ msg: "Liked post" });
}
} else {
console.log("Normal");
if (post.bins.ran.length <= 2) {
const ops = [
Aerospike.lists.append("ran", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Liked post" });
} else {
return res.status(200).json({ msg: "Liked post" });
}
}
}
} else {
// return res.status(200).json({ msg: "Liked post" });
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "Liked post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Liked post" });
} else {
return res.status(200).json({ msg: "Liked post" });
}
} else {
console.log("Normal ", post.bins);
return res.status(200).json({ msg: "Liked post" });
}
}
}
}
});
}
});
}
}
} else {
const ops = [Aerospike.lists.append("likes", req.user.handleUn)];
client.operate(post_meta_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [
Aerospike.operations.incr("l_c", 1),
Aerospike.operations.incr("like", true),
];
await client.operate(post_feed_key, ops);
client.operate(post_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
// return res.status(200).json({ msg: "Liked post" });
// ***
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "Liked post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Liked post" });
} else {
return res.status(200).json({ msg: "Liked post" });
}
} else {
console.log("Normal");
return res.status(200).json({ msg: "Liked post" });
}
}
}
});
}
});
}
}
}
async pinnedPost(req, res, next) {
try {
if (!req.params.id) {
return res.status(401).json({ msg: "Invalid request" });
} else {
const data = await blockPinnedPost(req.params.id);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
// view full post
async viewFullPost(req, res, next) {
try {
const data = await blockFetchFullPost(req.params.id);
return res.status(200).json(data);
} catch (err) {
next(err);
}
}
async deletePost(req, res, next) {
try {
// const client = await getAerospikeClient();
if (!req.params.id) {
return res.status(401).json({ msg: "Invalid request" });
} else {
const data = await blockPostDelete(req.params.id);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
async editPost(req, res, next) {
const client = await getAerospikeClient();
const data = await blockPostEdit(req.params.id, req.body);
return res.status(200).json(data);
}
async spamPost(req, res, next) {
const client = await getAerospikeClient();
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const data = await blockPostSpam(req.params.id, req.user.handleUn);
return res.status(200).json(data);
}
}
async donatePost(req, res, next) {
try {
const client = await getAerospikeClient();
const id = req.params.id;
console.log(req.query);
if (!id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const data = await blockPostDonate(id, req.query, req.user);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
async fetchFlaggedUsersList(req, res, next) {
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid parameter" });
} else {
const data = await handleFlaggedUsersList(
req.params.id,
req.query.postType
);
return res.status(200).json(data);
}
}
async fetchLikeUser(req, res, next) {
try {
console.log("likeType ", req.query.type);
const data = await fetchAllLikeUsers(
req.params.id,
req.query.type,
req.query.postType
);
return res.status(200).json(data);
} catch (error) {
next(error);
}
}
// ***************************** //
// ***************************** //
async handleDislike(req, res, next) {
try {
const id = req.params.id;
const client = await getAerospikeClient();
if (!id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const post_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_GROUP_POSTS,
id
);
const post_meta_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_GROUP_POST_META,
id
);
const post_feed_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_POSTS,
id
);
const post = await client.get(post_key);
const meta = await client.get(post_meta_key);
if (post.bins.l_c > 0) {
const meta = await client.get(post_meta_key);
if (meta.bins.dislikes.includes(req.user.handleUn)) {
const ops = [
Aerospike.lists.removeByValue("dislikes", req.user.handleUn),
];
client.operate(post_meta_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [Aerospike.operations.incr("l_c", -1)];
await client.operate(post_feed_key, ops);
client.operate(post_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
// return res.status(200).json({ msg: "Dislikes added" });
if (meta.bins.haha.length === 1) {
const ops = [Aerospike.operations.incr("haha", -1)];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "remove haha post" });
} else {
return res.status(200).json({ msg: "remove haha post" });
}
}
});
}
});
} else {
if (
meta.bins.likes.includes(req.user.handleUn) ||
meta.bins.haha.includes(req.user.handleUn) ||
meta.bins.angry.includes(req.user.handleUn) ||
meta.bins.dislikes.includes(req.user.handleUn)
) {
const ops = [
Aerospike.lists.removeByValue("likes", req.user.handleUn),
Aerospike.lists.removeByValue("haha", req.user.handleUn),
Aerospike.lists.removeByValue("angry", req.user.handleUn),
Aerospike.lists.removeByValue("heart", req.user.handleUn),
];
client.operate(post_meta_key, ops, (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [
Aerospike.lists.append("dislikes", req.user.handleUn),
];
client.operate(post_meta_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
// return res.status(200).json({ msg: "Dislike post" });
if (meta.bins.dislikes.length === 0) {
const ops = [Aerospike.operations.incr("dislike", 1)];
const data = await client.operate(post_key, ops);
// return res.status(200).json({ msg: "Dislikes added" });
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "Dislike post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res
.status(200)
.json({ msg: "Dislike post" });
} else {
return res
.status(200)
.json({ msg: "Dislike post" });
}
} else {
console.log("Normal");
if (post.bins.ran.length <= 2) {
const ops = [
Aerospike.lists.append("ran", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res
.status(200)
.json({ msg: "Dislike post" });
} else {
return res
.status(200)
.json({ msg: "Dislike post" });
}
}
}
} else {
// return res.status(200).json({ msg: "Dislikes added" });
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "Dislike post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res
.status(200)
.json({ msg: "Dislike post" });
} else {
return res
.status(200)
.json({ msg: "Dislike post" });
}
} else {
console.log("Normal");
if (post.bins.ran.length <= 2) {
const ops = [
Aerospike.lists.append("ran", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res
.status(200)
.json({ msg: "Dislike post" });
} else {
return res
.status(200)
.json({ msg: "Dislike post" });
}
}
}
}
}
});
}
});
} else {
const ops = [
Aerospike.lists.append("dislikes", req.user.handleUn),
];
client.operate(post_meta_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [Aerospike.operations.incr("l_c", 1)];
await client.operate(post_feed_key, ops);
client.operate(post_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
// return res.status(200).json({ msg: "Dislikes added" });
if (meta.bins.dislikes.length === 0) {
const ops = [Aerospike.operations.incr("dislike", 1)];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Dislikes added" });
} else {
return res.status(200).json({ msg: "Dislikes added" });
}
}
});
}
});
}
}
} else {
const ops = [Aerospike.lists.append("dislikes", req.user.handleUn)];
client.operate(post_meta_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [
Aerospike.operations.incr("l_c", 1),
Aerospike.operations.incr("dislike", true),
];
await client.operate(post_feed_key, ops);
client.operate(post_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
// return res.status(200).json({ msg: "Dislikes added" });
if (meta.bins.dislikes.length === 0) {
const ops = [Aerospike.operations.incr("dislike", 1)];
const data = await client.operate(post_key, ops);
// return res.status(200).json({ msg: "Dislikes added" });
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "Dislike post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Dislike post" });
} else {
return res.status(200).json({ msg: "Dislike post" });
}
} else {
console.log("Normal");
if (post.bins.ran.length <= 2) {
const ops = [
Aerospike.lists.append("ran", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Dislike post" });
} else {
return res.status(200).json({ msg: "Dislike post" });
}
}
}
} else {
// return res.status(200).json({ msg: "Dislikes added" });
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "Liked post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Dislike post" });
} else {
return res.status(200).json({ msg: "Dislike post" });
}
} else {
console.log("Normal");
if (post.bins.ran.length <= 2) {
const ops = [
Aerospike.lists.append("ran", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Dislike post" });
} else {
return res.status(200).json({ msg: "Dislike post" });
}
}
}
}
}
});
}
});
}
// const data = await blockPostLike(id, req.user);
// return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
async handleHaha(req, res) {
try {
const id = req.params.id;
const client = await getAerospikeClient();
console.log(req.params.id);
if (!id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const post_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_GROUP_POSTS,
id
);
const post_meta_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_GROUP_POST_META,
id
);
const post_feed_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_POSTS,
id
);
const post = await client.get(post_key);
if (post.bins.l_c > 0) {
console.log("Like count greater than 0");
const meta = await client.get(post_meta_key);
if (meta.bins.haha.includes(req.user.handleUn)) {
console.log("Already haha");
const ops = [
Aerospike.lists.removeByValue("haha", req.user.handleUn),
];
client.operate(post_meta_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [Aerospike.operations.incr("l_c", -1)];
await client.operate(post_feed_key, ops);
client.operate(post_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
// return res.status(200).json({ msg: "remove haha post" });
if (meta.bins.haha.length === 1) {
const ops = [Aerospike.operations.incr("haha", -1)];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "remove haha post" });
} else {
return res.status(200).json({ msg: "remove haha post" });
}
}
});
}
});
} else {
console.log("Not like");
if (
meta.bins.likes.includes(req.user.handleUn) ||
meta.bins.angry.includes(req.user.handleUn) ||
meta.bins.dislikes.includes(req.user.handleUn)
) {
console.log("Not like Other");
const ops = [
Aerospike.lists.removeByValue("likes", req.user.handleUn),
Aerospike.lists.removeByValue("angry", req.user.handleUn),
Aerospike.lists.removeByValue("dislikes", req.user.handleUn),
];
client.operate(post_meta_key, ops, (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [
Aerospike.lists.append("haha", req.user.handleUn),
];
client.operate(post_meta_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
if (meta.bins.haha.length === 0) {
const ops = [Aerospike.operations.incr("haha", 1)];
const data = await client.operate(post_key, ops);
// return res.status(200).json({ msg: "haha post" });
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "HAHA post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "HAHA post" });
} else {
return res.status(200).json({ msg: "HAHA post" });
}
} else {
console.log("Normal");
if (post.bins.ran.length <= 2) {
const ops = [
Aerospike.lists.append("ran", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "HAHA post" });
} else {
return res.status(200).json({ msg: "HAHA post" });
}
}
}
} else {
// return res.status(200).json({ msg: "haha post" });
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "Liked post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "HAHA post" });
} else {
return res.status(200).json({ msg: "haha post" });
}
} else {
console.log("Normal");
if (post.bins.ran.length <= 2) {
const ops = [
Aerospike.lists.append("ran", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "haha post" });
} else {
return res.status(200).json({ msg: "haha post" });
}
}
}
}
}
});
}
});
} else {
const ops = [Aerospike.lists.append("haha", req.user.handleUn)];
client.operate(post_meta_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [Aerospike.operations.incr("l_c", 1)];
await client.operate(post_feed_key, ops);
client.operate(post_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
if (meta.bins.haha.length === 0) {
const ops = [Aerospike.operations.incr("haha", 1)];
const data = await client.operate(post_key, ops);
// return res.status(200).json({ msg: "haha post" });
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "Liked post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res
.status(200)
.json({ msg: "Liked post" });
} else {
return res
.status(200)
.json({ msg: "Liked post" });
}
} else {
console.log("Normal");
if (post.bins.ran.length <= 2) {
const ops = [
Aerospike.lists.append("ran", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res
.status(200)
.json({ msg: "Liked post" });
} else {
return res
.status(200)
.json({ msg: "Liked post" });
}
}
}
} else {
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "Liked post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res
.status(200)
.json({ msg: "Liked post" });
} else {
return res
.status(200)
.json({ msg: "Liked post" });
}
} else {
console.log("Normal");
if (post.bins.ran.length <= 2) {
const ops = [
Aerospike.lists.append("ran", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res
.status(200)
.json({ msg: "Liked post" });
} else {
return res
.status(200)
.json({ msg: "Liked post" });
}
}
}
return res.status(200).json({ msg: "haha post" });
}
}
});
}
});
}
}
} else {
console.log("Like count 0");
const ops = [Aerospike.lists.append("haha", req.user.handleUn)];
client.operate(post_meta_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [
Aerospike.operations.incr("l_c", 1),
Aerospike.operations.incr("haha", true),
];
await client.operate(post_feed_key, ops);
client.operate(post_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
// return res.status(200).json({ msg: "HAHA post" });
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "Liked post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Liked post" });
} else {
return res.status(200).json({ msg: "Liked post" });
}
} else {
console.log("Normal");
if (post.bins.ran.length <= 2) {
const ops = [
Aerospike.lists.append("ran", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Liked post" });
} else {
return res.status(200).json({ msg: "Liked post" });
}
}
}
}
});
}
});
}
}
} catch (error) {
next(error);
}
}
async handleAngry(req, res, next) {
try {
const id = req.params.id;
const client = await getAerospikeClient();
if (!id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const post_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_GROUP_POSTS,
id
);
const post_meta_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_GROUP_POST_META,
id
);
const post_feed_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_POSTS,
id
);
const post = await client.get(post_key);
if (post.bins.l_c > 0) {
const meta = await client.get(post_meta_key);
if (meta.bins.angry.includes(req.user.handleUn)) {
const ops = [
Aerospike.lists.removeByValue("angry", req.user.handleUn),
];
client.operate(post_meta_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [Aerospike.operations.incr("l_c", -1)];
await client.operate(post_feed_key, ops);
client.operate(post_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
// return res.status(200).json({ msg: "angry added" });
if (meta.bins.angry.length === 1) {
const ops = [Aerospike.operations.incr("angry", -1)];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "angry added" });
} else {
return res.status(200).json({ msg: "angry added" });
}
}
});
}
});
} else {
if (
meta.bins.likes.includes(req.user.handleUn) ||
meta.bins.haha.includes(req.user.handleUn) ||
meta.bins.angry.includes(req.user.handleUn) ||
meta.bins.dislikes.includes(req.user.handleUn)
) {
const ops = [
Aerospike.lists.removeByValue("likes", req.user.handleUn),
Aerospike.lists.removeByValue("haha", req.user.handleUn),
Aerospike.lists.removeByValue("angry", req.user.handleUn),
Aerospike.lists.removeByValue("heart", req.user.handleUn),
];
client.operate(post_meta_key, ops, (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [
Aerospike.lists.append("angry", req.user.handleUn),
];
client.operate(post_meta_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
// return res.status(200).json({ msg: "Angry post" });
if (meta.bins.angry.length === 0) {
const ops = [Aerospike.operations.incr("angry", 1)];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "angry added" });
} else {
return res.status(200).json({ msg: "angry added" });
}
}
});
}
});
} else {
const ops = [Aerospike.lists.append("angry", req.user.handleUn)];
client.operate(post_meta_key, ops, (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [Aerospike.operations.incr("l_c", 1)];
client.operate(post_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
// return res.status(200).json({ msg: "Angry added" });
if (meta.bins.angry.length === 0) {
const ops = [Aerospike.operations.incr("angry", 1)];
const data = await client.operate(post_key, ops);
// return res.status(200).json({ msg: "angry added" });
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "Angry post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res
.status(200)
.json({ msg: "Angry post" });
} else {
return res
.status(200)
.json({ msg: "Angry post" });
}
} else {
console.log("Normal");
if (post.bins.ran.length <= 2) {
const ops = [
Aerospike.lists.append("ran", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res
.status(200)
.json({ msg: "Angry post" });
} else {
return res
.status(200)
.json({ msg: "Angry post" });
}
}
}
} else {
// return res.status(200).json({ msg: "angry added" });
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "Liked post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res
.status(200)
.json({ msg: "Angry post" });
} else {
return res
.status(200)
.json({ msg: "Angry post" });
}
} else {
console.log("Normal");
if (post.bins.ran.length <= 2) {
const ops = [
Aerospike.lists.append("ran", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res
.status(200)
.json({ msg: "Angry post" });
} else {
return res
.status(200)
.json({ msg: "Angry post" });
}
}
}
}
}
});
}
});
}
}
} else {
const ops = [Aerospike.lists.append("angry", req.user.handleUn)];
client.operate(post_meta_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops = [Aerospike.operations.incr("l_c", 1)];
await client.operate(post_feed_key, ops);
client.operate(post_key, ops, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
// return res.status(200).json({ msg: "angry added" });
if (meta.bins.angry.length === 0) {
const ops = [Aerospike.operations.incr("angry", 1)];
const data = await client.operate(post_key, ops);
// return res.status(200).json({ msg: "angry added" });
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "Angry post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Angry post" });
} else {
return res.status(200).json({ msg: "Angry post" });
}
} else {
console.log("Normal");
if (post.bins.ran.length <= 2) {
const ops = [
Aerospike.lists.append("ran", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Angry post" });
} else {
return res.status(200).json({ msg: "Angry post" });
}
}
}
} else {
// return res.status(200).json({ msg: "angry added" });
if (post.bins.u_dun === req.user.handleUn) {
return res.status(200).json({ msg: "Angry post" });
} else {
if (req.user.flwr_c > 2) {
console.log("Popular");
if (post.bins.pop.length <= 2) {
const ops = [
Aerospike.lists.append("pop", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Angry post" });
} else {
return res.status(200).json({ msg: "Angry post" });
}
} else {
console.log("Normal");
if (post.bins.ran.length <= 2) {
const ops = [
Aerospike.lists.append("ran", {
handleUn: req.user.handleUn,
pic: req.user.p_i || "",
}),
];
const data = await client.operate(post_key, ops);
return res.status(200).json({ msg: "Angry post" });
} else {
return res.status(200).json({ msg: "Angry post" });
}
}
}
}
}
});
}
});
}
}
} catch (error) {
next(error);
}
}
/**
* @FULLPOST_PAST_CODE
* */
async fetchBlockFeed(req, res, next) {}
async ctrlCreateNewBlockPost(req, res, next) {
try {
console.log("New API Call ", req.body);
if (!req.params.id) {
return res.status(400).json({ msg: "Request params id" });
} else {
const data = await createNewBlockPost(
req.file,
req.params.id,
req.body,
req.user
);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
/**
* @BOOKMARK_PAST
* */
async bookmarkPost(req, res, next) {
console.log("res body", req.body);
try {
if (!req.params.id) {
throw createError.BadRequest("Invalid post id");
} else {
const result = await handleBookmarkPost(
req.params.id,
req.user.handleUn,
req.body.btnType
);
return res.status(200).json(result);
}
} catch (error) {
next(error.message);
}
}
async hideUnhidePost(req, res, next) {
try {
const client = await getAerospikeClient();
if (!req.params.id) {
return res.status(400).json({ msg: "Inva;lid request" });
} else {
const group_post_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_GROUP_POSTS,
req.params.id
);
const post_feed_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_POSTS,
req.params.id
);
const ops = [Aerospike.lists.append("hide", req.user.handleUn)];
const data = await client.operate(group_post_key, ops);
try {
const data = await client.operate(post_feed_key, ops);
try {
return res.status(200).json(data);
} catch (error) {
return res.status(400).json({ msg: error.message });
}
} catch (error) {
return res.status(400).json({ msg: error.message });
}
}
} catch (error) {
next(error);
}
}
async fetchAnalytics(req, res, next) {
try {
const client = await getAerospikeClient();
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
console.log(req.params.id);
const post_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_GROUP_POSTS,
req.params.id
);
const post_meta_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_GROUP_POST_META,
req.params.id
);
var post;
client.exists(post_key, async (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
if (!result) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const mapOps = [
Aerospike.maps
.getByKey("analytics", req.query.date)
.andReturn(maps.returnType.KEY_VALUE),
];
client.operate(post_meta_key, mapOps, async (err, result) => {
const post = await client.get(post_meta_key);
if (err) {
return res.status(400).json({ msg: err.message });
} else {
return res
.status(200)
.json({ metaData: post, analytics: result.bins.analytics });
}
});
}
}
});
}
} catch (error) {
next(error);
}
}
//**************** GROUP POST COMMENT **************//
async createComment(req, res, next) {
console.log("createComment controller user", req.user);
try {
const id = req.params.id;
const data = await createBlockPostComment(
id,
req.file,
req.body,
req.user,
req.body.isGroupCmnt
);
return res.status(200).json(data);
} catch (error) {
next(error);
}
}
async BlockCmntRepostWithQuote(req, res, next) {
console.log("repost body", req.body);
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const data = await handleRepostWithQuote(
req.params.id,
req.body,
req.user
);
return res.status(200).json(data);
}
}
async fetchComments(req, res, next) {
try {
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid" });
} else {
const page = req.query.page;
const limit = req.query.limit;
const sortedBy = req.query.sortedBy;
const type = req.query.type;
const data = await fetchAllBlockComments(
req.params.id,
req.user.handleUn,
sortedBy,
page,
limit,
type
);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
async fetchSingleCommentMeta(req, res, next) {
console.log("cmnt meta id =>", req.params.id);
try {
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid" });
} else {
const data = await fetchSingleBlockCommentMeta(req.params.id);
console.log("data", data);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
async fetchMyComments(req, res, next) {
try {
const client = await getAerospikeClient();
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid" });
} else {
const page = req.query.page;
const limit = req.query.limit;
const sortedBy = req.query.sortedBy;
const data = await fetchMyBlockComments(
req.params.id,
req.user.handleUn,
sortedBy,
page,
limit
);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
async likeComment(req, res, next) {
console.log("reached here ####", req.body);
if (!req.params.id || !req.body.username || !req.body.type) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const data = await blockLikeComment(
req.params.id,
req.body.type,
// req.params.likeCount,
req.body.username,
req.user,
req.body.p_type
);
return res.status(200).json(data);
}
}
async fetchCommentsMostReactions(req, res, next) {
console.log("data===> ", req.params.id);
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const data = await fetchBlockCommentsMostReactions(
req.params.id,
req.user
);
return res.status(200).json(data);
}
}
async handleRepostBlockComment(req, res, next) {
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid parameter" });
} else {
const data = await repostBlockComment(req.params.id, req.user);
return res.status(200).json(data);
}
}
/* async removeLike(req, res, next) {
console.log("data===> ")
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid parameter" });
} else {
const data = await blockRemoveLikeComment(
req.params.id,
req.user.handleUn
);
return res.status(200).json(data);
}
}
*/
async pinAndUnpinComment(req, res, next) {
console.log(
"req.body of cmnt controller pin pos ===>",
req.query.postId,
"and --",
req.params.id
);
if (!req.params.id || !req.query.postId) {
return res.status(400).json({ msg: "Invalid parameter" });
} else {
const data = await handlePinUnpinComment(
req.params.id,
req.query.postId,
req.body.cmntAuthor,
req.user,
req.body.type
);
return res.status(200).json(data);
}
}
async handleSpamComment(req, res, next) {
try {
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid parameter" });
} else {
const data = await spamComment(
req.params.id,
req.user.handleUn,
req.body.type
);
return res.status(200).json(data);
}
} catch (err) {
next(err);
}
}
/**
*
* @REPORT_PAST
*/
/*
async reportComment(req, res, next) {
const commentId = req.params.id;
const client = await getAerospikeClient();
if (!commentId) {
return res.status(401).json({ msg: "Invalid request" });
} else {
const comment_meta_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_GROUP_POST_COMMENT_META,
req.params.id
);
const comment_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_GROUP_POST_COMMENT,
req.params.id
);
const data = await client.get(comment_meta_key);
const metaData = data.bins;
if (metaData.spam.includes(req.user.handleUn)) {
const ops = [Aerospike.lists.removeByValue("spam", req.user.handleUn)];
client.operate(comment_meta_key, ops, (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops1 = [Aerospike.operations.incr("s_c", -1)];
client.operate(comment_key, ops1, (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
return res.status(200).json({ msg: "spam removed" });
}
});
}
});
} else {
const ops = [Aerospike.lists.append("spam", req.user.handleUn)];
client.operate(comment_meta_key, ops, (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
const ops1 = [Aerospike.operations.incr("s_c", 1)];
client.operate(comment_key, ops1, (err, result) => {
if (err) {
return res.status(400).json({ msg: err.message });
} else {
return res.status(200).json({ msg: "spam added" });
}
});
}
});
}
}
}
*/
async editComment(req, res, next) {
try {
const commentId = req.params.id;
const data = await editBlockComment(commentId, req.body, req.body.type);
return res.status(200).json(data);
} catch (error) {
next(error);
}
}
async deleteComment(req, res, next) {
console.log("req.body ==>", req.body.type);
try {
const commentId = req.params.id;
// const type = req.params.type;
const type = req.body.type;
const data = await blockDeleteComment(commentId, type);
return res.status(200).json(data);
} catch (error) {
next(error);
}
}
async hideComment(req, res, next) {
try {
const commentId = req.params.id;
const client = await getAerospikeClient();
const key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_GROUP_POST_COMMENT,
commentId
);
client.exists(key, async (err, data) => {
console.log("DATA >>", data);
if (err) {
return res.status(400).json({ msg: err.message });
} else {
if (!data) {
return res.status(400).json({ msg: "No comment found" });
} else {
const data = await client.get(key);
if (data.bins.hide.includes(req.user.handleUn)) {
console.log("Already hide");
const ops = [
Aerospike.lists.removeByValue("hide", req.user.handleUn),
];
client.operate(key, ops, (err, result) => {
if (err) {
return res.status(400).json({ msg: "err.message" });
} else {
return res
.status(200)
.json({ msg: "You unhide this comment" });
}
});
} else {
const ops = [Aerospike.lists.append("hide", req.user.handleUn)];
client.operate(key, ops, (err, result) => {
if (err) {
return res.status(400).json({ msg: "err.message" });
} else {
return res.status(200).json({ msg: "You hide this comment" });
}
});
}
}
}
});
} catch (error) {
next(error);
}
}
// ******************* Replies ******************* //
async createReply(req, res) {
console.log("createreply", req.body);
const data = await createBlockReply(
req.params.id,
req.body,
req.user,
req.body.type
);
return res.status(200).json(data);
}
async replyReply(req, res) {
try {
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const data = await createBlockReplyReply(
req.params.id,
req.body,
req.user,
req.body.type
);
return res.status(200).json(data);
}
} catch (error) {
throw error;
}
}
async fetchReplies(req, res, next) {
try {
const page = req.query.page || 1;
const limit = req.query.limit || 3;
const data = await getReplies(req.params.id, page, limit, req.query.type);
return res.status(200).json(data.data);
} catch (error) {
next(error);
}
}
async hideCommentReply(req, res, next) {
const replyId = req.params.id;
const commentId = req.body.commentId;
const handleUn = req.user.handleUn;
try {
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const data = await hideCommentReplyModel(replyId, commentId, handleUn);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
async deleteReply(req, res, next) {
try {
const client = await getAerospikeClient();
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const data = await deleteBlockReply(
req.params.id,
req.body.c_id,
req.body.type,
req.body.replyType
);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
async editReply(req, res, next) {
console.log(req.params.id);
try {
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const data = await editBlockReply(
req.params.id,
req.body,
req.body.type
);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
async likeReply(req, res, next) {
console.log("come here ###", req.body);
const client = await getAerospikeClient();
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const data = await likeBlockReply(
req.params.id,
req.user.handleUn,
req.user,
req.body.type
);
return res.status(200).json(data);
}
}
async dislikeReply(req, res, next) {
try {
const client = await getAerospikeClient();
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const data = await dislikeBlockReply(
req.params.id,
req.user.handleUn,
req.body.type
);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
async spamReply(req, res, next) {
try {
const client = await getAerospikeClient();
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const data = await spamBlockReply(
req.params.id,
req.body.handleUn,
req.body.type
);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
// ******************* Events ******************* //
async createEvent(req, res, next) {
console.log("Event create");
try {
const data = await createBlockEvent(req.file, req.body, req.user);
return res.status(200).json(data);
} catch (error) {
next(error.message);
}
}
async fetchEvents(req, res, next) {
console.log("Call Events");
try {
const client = await getAerospikeClient();
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid block id" });
} else {
const page = req.query.page || 1;
const limit = req.query.limit || 3;
const data = await fetchAllEvents(req.params.id, page, limit);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
async joinEvent(req, res, next) {
try {
const data = req.body;
if (!data.id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const response = await blockEventJoin(req.user, data);
console.log("DATA:", response);
return res.status(200).json(response);
}
} catch (error) {
next(error);
}
}
async fetchEvent(req, res, next) {
try {
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const data = await fetchSingleEvent(req.params.id);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
async deleteEvent(req, res, next) {
try {
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
console.log(req.params.id);
const data = await blockEventDelete(req.params.id);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
async eventInterest(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("Invalid request paramster");
} else {
const array = JSON.parse(req.body.list);
console.log(array);
const result = await addEventInterest(
req.params.id,
req.user,
req.query.value,
array
);
console.log(result);
return res.status(200).json(result);
}
} catch (error) {
next(error);
}
}
async eventNotInterest(req, res, next) {
console.log("NOT INTEREST");
try {
if (!req.params.id) {
throw createError.BadRequest("Invalid request paramster");
} else {
const array = JSON.parse(req.body.list);
const data = await addEventNotInterest(
req.params.id,
req.user,
req.query.value,
array
);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
async eventjoin(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("Invalid request paramster");
} else {
const array = JSON.parse(req.body.list);
const data = await addEventJoin(
req.params.id,
req.user,
req.query.value,
array
);
return res.status(200).json(data);
}
} catch (error) {
next(error);
}
}
async updateEvent(req, res, next) {
const client = await getAerospikeClient();
if (!req.params.id) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const event_key = new Aerospike.Key(
process.env.CLUSTER_NAME,
process.env.SET_BLOCK_EVENT,
req.params.id
);
let query = client.query(
process.env.CLUSTER_NAME,
process.env.SET_BLOCK_EVENT
);
const tempBin = "ExpVar"; // this bin is to hold expression read operation output
// query.select(["tit", "des", "s_d", "e_d", "s_t", "e_t", "price"]); //select single bin
query.where(Aerospike.filter.equal("e_id", req.params.id));
// const queryPolicy = new Aerospike.QueryPolicy({});
const stream = query.foreach();
stream.on("data", async function (record) {
var data = record.bins;
// console.log(data)
if (
!req.body.title.trim() ||
!req.body.description.trim() ||
!req.body.startdate.trim() ||
!req.body.enddate.trim() ||
!req.body.starttime.trim() ||
!req.body.endtime.trim()
) {
return res.status(400).json({ msg: "Invalid request" });
} else {
const ops = [
Aerospike.operations.write("tit", req.body.title),
Aerospike.operations.write("des", req.body.description),
Aerospike.operations.write("s_d", req.body.startdate),
Aerospike.operations.write("e_d", req.body.enddate),
Aerospike.operations.write("s_t", req.body.starttime),
Aerospike.operations.write("e_t", req.body.endtime),
Aerospike.operations.write("price", req.body.price),
Aerospike.operations.write("slot", req.body.slotValue),
];
await client.operate(event_key, ops);
}
});
stream.on("end", async function (record) {
const data = await client.get(event_key);
console.log(data.bins);
return res.status(200).json({ msg: "Event has been updated" });
});
}
}
async handleHideEvent(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("No event id found");
} else {
const result = await hideEvent(req.user.handleUn, req.params.id);
console.log(result);
return res.status(200).json(result);
}
} catch (error) {
next(error);
}
}
async reportEvent(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("Event id is not defined");
} else {
const result = await handleReportEvent(
req.params.id,
req.user.handleUn,
req.body
);
return res.status(200).json(result);
}
} catch (error) {
next(error);
}
}
async reportPost(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("Event id is not defined");
} else {
const result = await handleReportPost(
req.params.id,
req.user.handleUn,
req.body
);
return res.status(200).json(result);
}
} catch (error) {
next(error);
}
}
async getPostAnalytics(req, res, next) {
console.log("res", req.params.id);
try {
const id = String(req.params.id);
if (!req.params.id) {
throw createError.BadRequest("Post id is not defined");
} else {
const result = await handleGetPostAnalytics(id, req.query.date);
return res.status(200).json(result);
}
} catch (error) {
next(error);
}
}
async fetchFullPostInModal(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("Post id is not defined");
} else {
console.log("******Came here blockpostcontroller");
const id = req.params.id;
const result = await handleFetchFullPostInModal(id);
return res.status(200).json(result.bins);
}
} catch (error) {
next(error);
}
}
async addPostLike(req, res, next) {
try {
//console.log("*********", req.params.id, req.query.type)
const result = await handleAddPostLike(
req.params.id,
req.query.type,
req.user
);
return res.status(200).json(result);
} catch (error) {
next(error.message);
}
}
async removePostLike(req, res, next) {
try {
const result = await handleRemovePostLike(req.params.id, req.user);
return res.status(200).json(result);
} catch (error) {
next(error.message);
}
}
async updateNewsPost(req, res, next) {
try {
console.log("*********", req.params.id, req.body.value);
} catch (error) {
next(error.message);
}
}
// **** Handle Upvote news post
async upvoteNewsPost(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("Post id is not defined");
} else {
const result = await handleUpvoteNewsPost(
req.params.id,
req.user.handleUn,
req.body.owner,
req.user
);
return res.status(200).json(result);
}
} catch (error) {
next(error);
}
}
// *** Handle Downvote news post
async downvoteNewsPost(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("Post id is not defined");
} else {
const result = await handleDownvoteNewsPost(
req.params.id,
req.user.handleUn
);
return res.status(200).json(result);
}
} catch (error) {
next(error);
}
}
// *** Handle Fake news post
async fakeNewsPost(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("Post id is not defined");
} else {
const result = await handleFakeNewsPost(
req.params.id,
req.user.handleUn
);
return res.status(200).json(result);
}
} catch (error) {
next(error);
}
}
async flagPost(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("Post id is not defined");
} else {
const result = await handleFlagPost(req.params.id, req.user.handleUn);
return res.status(200).json(result);
}
} catch (error) {
next(error);
}
}
// *** Announcement post Announcement Block post
async excitedAnnouncementPost(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("Post id is not defined");
} else {
const result = await handleExicitedAnnouncementPost(
req.params.id,
req.user.handleUn,
req.user
);
return res.status(200).json(result);
}
} catch (error) {
next(error);
}
}
// *** Disapointed Announcement Block post
async disapointedAnnouncementPost(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("Post id is not defined");
} else {
const result = await handleDisapointedAnnouncementPost(
req.params.id,
req.user.handleUn
);
return res.status(200).json(result);
}
} catch (error) {
next(error);
}
}
// *** Misleading Announcement Block post
async misleadingAnnouncementPost(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("Post id is not defined");
} else {
const result = await handleMisLeadingAnnouncementPost(
req.params.id,
req.user.handleUn
);
return res.status(200).json(result);
}
} catch (error) {
next(error);
}
}
async fetchUpvoteUsers(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("Post id is not defined");
} else {
const page = req.query.page || 1;
const limit = req.query.limit || 10;
const result = await handleUpvoteUsers(req.params.id, page, limit);
return res.status(200).json(result);
}
} catch (error) {
next(error);
}
}
async fetchExcitedUsers(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("Post id is not defined");
} else {
const page = req.query.page || 1;
const limit = req.query.limit || 10;
const result = await handleExcitedUsers(req.params.id, page, limit);
return res.status(200).json(result);
}
} catch (error) {
next(error);
}
}
async sharePost(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest("Post ID is not present");
} else {
const result = await handleSharePost(req.body, req.user);
return res.status(200).json(result);
}
} catch (error) {
next(error);
}
}
async fetchPostEarning(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest(error.message);
} else {
const result = await handleFetchEarning(req.params.id);
return res.status(200).json(result);
}
} catch (error) {
next(error.message);
}
}
async fetchDonateUsers(req, res, next) {
try {
if (!req.params.id) {
throw createError.BadRequest(error.message);
} else {
const result = await handleFetchDonatedUsers(req.params.id);
return res.status(200).json(result);
}
} catch (error) {
next(error.message);
}
}
/**
* @REPOST_POST
*/
async repostPost(req, res, next) {
console.log("called this function");
console.log("repostPost->req.params.id", req.params.id);
try {
const result = await handleRepostPost(req.params.id, req.user);
console.log("result after repost ==>");
// return res.status(200).json(result);
} catch (error) {
throw createError.BadRequest(error.message);
}
}
/**
* For block post booster ad
*/
async createOrUpdateBlockPostBoost(req, res, next) {
//
try {
const result = await handleCreateOrUpdateBlockPostBoost(
req.user.handleUn,
req.body
);
return res.status(200).json(result);
} catch (error) {
throw createError.BadRequest(error.message);
}
}
async getBlockPostBoost(req, res, next) {
console.log("req.query.filter", req.query);
//
try {
const postId =
req.query.postId === "undefined" ||
(req.query.postId === "null") | (req.query.postId === "0")
? 0
: req.query.postId;
const reqFilter = req.query.filter === "null" ? "7D" : req.query.filter;
const pageNum = Number(req.query.page) || 0;
const pageLimit = Number(req.query.limit) || 10;
const result = await handleGetBlockPostBoost(
req.user.handleUn,
reqFilter,
pageNum,
pageLimit,
postId
);
return res.status(200).json(result);
} catch (error) {
throw createError.BadRequest(error.message);
}
}
}
module.exports = new BlockPostController();
// eventData.j_u
Editor is loading...
Leave a Comment