175 lines
4.0 KiB
JavaScript
175 lines
4.0 KiB
JavaScript
const { log } = require("handlebars");
|
|
const Blog = require("../models/Blog");
|
|
const User = require("../models/User");
|
|
|
|
module.exports.getAllBlogs = async (req, res, next) => {
|
|
try {
|
|
let blog = await Blog.find();
|
|
if (blog) {
|
|
res.json({ blogs: blog });
|
|
} else {
|
|
console.log("Error in Blog", blog);
|
|
return;
|
|
}
|
|
} catch {
|
|
(err) => {
|
|
res.status(422).json({ error: err });
|
|
};
|
|
}
|
|
};
|
|
|
|
module.exports.getSingleBlog = async (req, res, next) => {
|
|
try {
|
|
const { id } = req.params;
|
|
let blog = await Blog.findById({ _id: id });
|
|
if (blog) {
|
|
res.json({ blog });
|
|
} else {
|
|
res.json({ error: "Blog Not Found" });
|
|
}
|
|
} catch {
|
|
(err) => {
|
|
console.log("Error", err);
|
|
};
|
|
}
|
|
};
|
|
|
|
module.exports.addBlog = async (req, res, next) => {
|
|
const { _id, title, body, author } = req.body; //_id is of user from frontend who is adding the blog.
|
|
try {
|
|
console.log("Image File", req.file);
|
|
let user = await User.findById({ _id });
|
|
if (!title) {
|
|
res.status(422).json({ message: "Please, Add Title of the Blog" });
|
|
return;
|
|
}
|
|
if (!body) {
|
|
res.status(422).json({ message: "Please, Add Body of the Blog" });
|
|
return;
|
|
}
|
|
if (user) {
|
|
let blog = new Blog({
|
|
title,
|
|
body,
|
|
image: req.file.location,
|
|
date: new Date().toISOString(),
|
|
author,
|
|
});
|
|
await blog.save();
|
|
res.json({ message: "Blog Saved Successfully!" });
|
|
} else {
|
|
res.status.json({ error: "User Doesn't Exists" });
|
|
return;
|
|
}
|
|
} catch {
|
|
(err) => {
|
|
res.status(422).json({ error: err });
|
|
};
|
|
}
|
|
};
|
|
|
|
module.exports.deleteBlog = async (req, res, next) => {
|
|
const { _id } = req.body;
|
|
try {
|
|
let blog = await Blog.find({ _id });
|
|
if (blog) {
|
|
await Blog.findByIdAndDelete(_id);
|
|
res.json({ message: "Blog Deleted!" });
|
|
} else {
|
|
res.status(404).json({ message: "Blog Not Found" });
|
|
return;
|
|
}
|
|
} catch {
|
|
(err) => {
|
|
res.status(422).json({ error: err });
|
|
};
|
|
}
|
|
};
|
|
|
|
module.exports.editBlog = async (req, res, next) => {
|
|
const { _id, body, title, image } = req.body;
|
|
|
|
try {
|
|
if (!title) {
|
|
res.status(422).json({ message: "Please, Add the Title of the Blog." });
|
|
return;
|
|
}
|
|
if (!body) {
|
|
res.status(422).json({ message: "Please, Add the Body of the Blog." });
|
|
return;
|
|
}
|
|
if (!image) {
|
|
res.status(422).json({ message: "Please, Add the Image of the Blog." });
|
|
return;
|
|
}
|
|
let blog = await Blog.findById({ _id });
|
|
if (blog) {
|
|
blog.title = title;
|
|
blog.body = body;
|
|
blog.image = image;
|
|
blog = await blog.save();
|
|
res.json({ message: "Blog Updated!" });
|
|
} else {
|
|
res.status(422).json({ error: "Blog Doesn't Found" });
|
|
return;
|
|
}
|
|
} catch {
|
|
(err) => {
|
|
res.status(422).json({ error: err });
|
|
};
|
|
}
|
|
};
|
|
module.exports.commentBlog = async (req, res, next) => {
|
|
const comment = req.body.comment;
|
|
const today = new Date();
|
|
var dd = today.getDate();
|
|
var mm = today.getMonth() + 1;
|
|
|
|
var yyyy = today.getFullYear();
|
|
if (dd < 10) {
|
|
dd = "0" + dd;
|
|
}
|
|
if (mm < 10) {
|
|
mm = "0" + mm;
|
|
}
|
|
// var today = dd + "/" + mm + "/" + yyyy;
|
|
|
|
const comments1 = {
|
|
user: req.user._id,
|
|
review: comment,
|
|
date: datenow,
|
|
};
|
|
|
|
try {
|
|
if (comment) {
|
|
Blog.findByIdAndUpdate(
|
|
{ _id: req.params.id },
|
|
{
|
|
$push: {
|
|
comments: comments1,
|
|
},
|
|
},
|
|
function (err, docs) {
|
|
if (err) {
|
|
res.status(503).json({
|
|
message: "internal server error cant post the comment",
|
|
err,
|
|
});
|
|
} else {
|
|
res.status(201).json({
|
|
message: "Comment posted!",
|
|
});
|
|
}
|
|
}
|
|
);
|
|
}
|
|
} catch (err) {
|
|
if (err) {
|
|
res.status(501).json({
|
|
message: "internal Server error please try again after some time",
|
|
err,
|
|
});
|
|
}
|
|
}
|
|
};
|