From 6506c0aece1fbfc88259506fdc39b631e6cb5ceb Mon Sep 17 00:00:00 2001 From: David Huang Date: Sat, 24 Sep 2022 22:14:58 -0400 Subject: [PATCH] Fixed some forum functions --- forum/index.js | 161 +++++++++++++++++-------------------------------- 1 file changed, 57 insertions(+), 104 deletions(-) diff --git a/forum/index.js b/forum/index.js index 8a70d55..44b68ef 100644 --- a/forum/index.js +++ b/forum/index.js @@ -9,22 +9,41 @@ const rabbitMQ = config.rabbitMQ db.on('error', console.error.bind(console, "MongoDB Atlas connection error")) +error_400 = (msg) => { + let res = { + status: 400, + body: msg + } + return JSON.stringify(res); +} + +server_error = () => { + let res = { + status: 500, + body: "Server error", + } + return JSON.stringify(res); +} + post_thread = async(req) => { try { console.log(req); - const { title, author, category, tags, images, content, comments, favorited_by } = req; + const { title, author, category, tags, images, content } = req; - if (!title || !author || !category || !tags || !images || !content || !comments || !favorited_by ) { - let res = { - status: 400, - body: "ok", - } - return JSON.stringify(res); + if (!title || !author || !category || !tags || images === undefined || content === undefined ) { + return error_400("Missing Paratemers") } + let image_ids = []; for (let i = 0; i < images.length; i++) { const image = new Image({ data: images[i] }); - + image.save().then(() => { + console.log("Image created and saved"); + image_ids.push(image._id); + }).catch(err => { + console.log("Image save error"); + console.log(err); + }) } const newForum = new Forum({ @@ -32,7 +51,7 @@ post_thread = async(req) => { author: author, category: category, tags: tags, - images: images, + images: image_ids, content: content, comments: comments, favorited_by: favorited_by, @@ -42,26 +61,17 @@ post_thread = async(req) => { console.log("New forum created"); let res = { status: 200, - body: "Missing parameters", + body: "Ok", } return JSON.stringify(res); }).catch(err => { console.log("New forum error -- not created"); - console.error(err); - let res = { - status: 500, - body: "server error" - } - return JSON.stringify(res) + return server_error(); }); } catch (err) { console.error(err); - let res = { - status: 500, - body: "server error" - } - return JSON.stringify(res) + return server_error(); } } @@ -69,21 +79,13 @@ update_thread = async(req) => { console.log(req); const { id, title, author, category, tags, images, content, comments, favorited_by } = req; - if ( !id || !title || !author || !category || !tags || !images || !content || !comments || !favorited_by ) { - let res = { - status: 400, - body: "Missing parameters", - } - return JSON.stringify(res); + if ( !id || !title || !author || !category || !tags || images === undefined || content === undefined || comments === undefined || !favorited_by === undefined ) { + return error_400("Missing Parameters"); } const forum = await Forum.findById(id); if (!forum) { - let res = { - status: 400, - body: "Thread does not exist", - } - return JSON.stringify(res); + return error_400("Thread does not exist"); } let res = { @@ -98,11 +100,7 @@ delete_thread = async(req) => { console.log(req); const { id } = req; if (!id) { - let res = { - status: 400, - body: "Missing parameters", - } - return JSON.stringify(res); + return error_400("Missing Parameters"); } Forum.findByIdAndDelete(id).then(() => { @@ -115,11 +113,7 @@ delete_thread = async(req) => { }).catch(err => { console.log("Forum deletion error"); console.log(err); - let res = { - status: 500, - body: "Server error", - } - return JSON.stringify(res); + return server_error(); }); } @@ -128,38 +122,22 @@ delete_thread = async(req) => { favorite = async(req) => { const { id, forum_id } = req; if ( !id || !forum_id ) { - let res = { - status: 400, - body: "Missing parameters", - } - return JSON.stringify(res); + return error_400("Missing Parameters"); } let user = User.findById(id); if (!user) { - let res = { - status: 400, - body: "User does not exist", - } - return JSON.stringify(res); + return error_400("User does not exist"); } let forum = Forum.findById(forum_id); if (!forum) { - let res = { - status: 400, - body: "Thread does not exist", - } - return JSON.stringify(res); + return error_400("Thread does not exist") } let found = user.favorites.indexOf(forum_id) if (found >= 0) { - let res = { - status: 400, - body: "Thread already favorited", - } - return JSON.stringify(res); + return error_400("Thread already favorited"); } user.favorites.push(forum_id); forum.favorited_by++; @@ -176,58 +154,34 @@ favorite = async(req) => { }).catch(err => { console.log("Thread favorite error"); console.log(err); - let res = { - status: 500, - body: "Server error", - } - return JSON.stringify(res); + return server_error(); }) }).catch(err => { console.log("User favorite error"); console.log(err); - let res = { - status: 500, - body: "Server error", - } - return JSON.stringify(res); + return server_error(); }); } unfavorite = async(req) => { const { id, forum_id } = req; if ( !id || !forum_id ) { - let res = { - status: 400, - body: "Missing parameters", - } - return JSON.stringify(res); + return error_400("Missing parameters"); } let user = User.findById(id); if (!user) { - let res = { - status: 400, - body: "User does not exist", - } - return JSON.stringify(res); + return error_400("User does not exist") } let forum = Forum.findById(forum_id); if (!forum) { - let res = { - status: 400, - body: "Thread does not exist", - } - return JSON.stringify(res); + return error_400("Thread does not exist") } let found = user.favorites.indexOf(forum_id) if (found >= 0) { - let res = { - status: 400, - body: "Thread already favorited", - } - return JSON.stringify(res); + return error_400("Thread already favorited") } user.favorites.splice(found, 1); forum.favorited_by--; @@ -244,20 +198,12 @@ unfavorite = async(req) => { }).catch(err => { console.log("Thread unfavorite error"); console.log(err); - let res = { - status: 500, - body: "Server error", - } - return JSON.stringify(res); + return server_error(); }) }).catch(err => { console.log("User unfavorite error"); console.log(err); - let res = { - status: 500, - body: "Server error", - } - return JSON.stringify(res); + return server_error(); }); } @@ -273,8 +219,15 @@ get_eat_thread_list = async(req) => { } -get_cook_thread = async(req) => { - +get_thread = async(req) => { + const { id } = req; + if (!id) { + let res = { + status: 400, + body: "Missing parameters", + } + return JSON.stringify(res); + } } get_eat_thread = async(req) => {