Newer
Older
import Article from '../models/article.js';
const articleService = {
async createArticle(articleData) {
try {
const article = new Article(articleData);
await article.save();
return article;
} catch (err) {
throw err;
}
},
async findAllArticle() {
try {
const articles = await Article
.find({})
.populate('author')
.populate('likes');
return articles;
} catch (err) {
throw err;
}
},
const article = await Article
.findById(articleId)
.populate('author')
.populate('comments.author')
.populate('likes');
return article;
} catch (err) {
throw err;
}
},
async findArticlesByAuthor(authorId) {
try {
const articles = await Article
.find({ author: authorId })
.populate('author')
.populate('likes');
return articles;
} catch (err) {
throw err;
}
},
async deleteArticle(articleId) {
try {
const article = await Article.findByIdAndDelete(articleId);
return article;
} catch (err) {
throw err;
}
},
async createComment(articleId, commentData) {
try {
const article = await Article.findById(articleId);
article.comments.push(commentData);
await article.save();
} catch (err) {
throw err;
}
},
async deleteComment(articleId, commentId) {
try {
const article = await Article.findById(articleId);
article.comments.pull({ _id: commentId });
await article.save();
} catch (err) {
throw err;
}
},
async setLike(articleId, userId) {
try {
const article = await Article.findById(articleId);
if(article.likes.includes(userId)) {
article.likes.pull({ _id: userId });
}
else {
article.likes.push(userId);
}
await article.save();
return article;