39 lines
1.3 KiB
JavaScript
39 lines
1.3 KiB
JavaScript
const appendTagList = (articleTags, article) => {
|
|
const tagList = articleTags.map((tag) => tag.name);
|
|
|
|
if (!article) return tagList;
|
|
delete article.dataValues.tagLists;
|
|
article.dataValues.tagList = tagList;
|
|
};
|
|
|
|
const appendFavorites = async (loggedUser, article) => {
|
|
const favorited = await article.hasUser(loggedUser ? loggedUser : null);
|
|
article.dataValues.favorited = loggedUser ? favorited : false;
|
|
|
|
const favoritesCount = await article.countUsers();
|
|
article.dataValues.favoritesCount = favoritesCount;
|
|
};
|
|
|
|
const appendFollowers = async (loggedUser, toAppend) => {
|
|
//
|
|
if (toAppend?.author) {
|
|
const author = await toAppend.getAuthor();
|
|
const following = await author.hasFollower(loggedUser ? loggedUser : null);
|
|
toAppend.author.dataValues.following = loggedUser ? following : false;
|
|
|
|
const followersCount = await author.countFollowers();
|
|
toAppend.author.dataValues.followersCount = followersCount;
|
|
//
|
|
} else {
|
|
const following = await toAppend.hasFollower(
|
|
loggedUser ? loggedUser : null
|
|
);
|
|
toAppend.dataValues.following = loggedUser ? following : false;
|
|
|
|
const followersCount = await toAppend.countFollowers();
|
|
toAppend.dataValues.followersCount = followersCount;
|
|
}
|
|
};
|
|
|
|
module.exports = { appendTagList, appendFavorites, appendFollowers };
|