const Comment = require("../models/comment.js"); const fs = require("fs"); module.exports = { listDirectories: function(req, res){ const searchDir = (dir, array)=>{ let contents = fs.readdirSync(dir); for(let i = 0; i < contents.length; i++){ if(contents[i].includes(".") === false){ let obj = { name: contents[i], contents: [] }; array.push(obj); searchDir(`${dir}/${contents[i]}`, obj.contents); } } if(contents.includes("article.txt")){ let meta = fs.readFileSync(`${dir}/meta.txt`).toString().split("\n"); array.push({ title: meta[0], route: dir.substring(dir.indexOf("/content/writing/") + 8), img: `${dir.substring(dir.indexOf("/content/writing/") + 8)}/mainImage.jpg` }); } return array; } let directoryDescription = []; searchDir(`${__dirname}/../content/writing`, directoryDescription); return res.json(directoryDescription); }, /* GET: return all comments for the specific article req.params.article = String response = [Comment] */ getComments: function(req, res){ Comment.aggregate([ {$match: { article: req.params.article }}, {$sort: { date: -1 }} ]) .then((comments)=>{ return res.json(comments); }) .catch((err)=>{ return res.json("Couldn't retrieve the comments"); }); }, /* POST: create a new comment req.body = { article: String, name: String, content: String, date: Date } response = Comment */ createComment: function(req, res){ let comment = new Comment({ article: req.body.article, name: req.body.name, content: req.body.content, date: new Date(req.body.date) }); comment.save() .then((comment)=>{ return res.json(comment); }) .catch((err)=>{ return res.json("Couldn't create your comment"); }); } }