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 findArticleById(articleId) {
try {
const article = await Article
.findById(articleId)
.populate('author')
.populate('comments.author')
.populate('likes');
return article;
} catch (err) {
throw err;
}
},
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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();
return article;
} catch (err) {
throw err;
}
},
async deleteComment(articleId, commentId) {
try {
const article = await Article.findById(articleId);
article.comments.pull({ _id: commentId });
await article.save();
return article;
} 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;
},
async findAllArticle() {
try {
const articlelist = await Article.find({}).populate('author', 'nickname').exec();
return articlelist;
} catch (err) {
throw err;
}