feat: #12976, shares collection

This commit is contained in:
Julian Lam
2024-12-16 13:50:24 -05:00
parent a7e6cfe837
commit e83036a959
8 changed files with 34 additions and 4 deletions

View File

@@ -265,6 +265,7 @@ async function getCounts(userData, callerUID) {
const promises = {
posts: db.sortedSetsCardSum(cids.map(c => `cid:${c}:uid:${uid}:pids`)),
topics: db.sortedSetsCardSum(cids.map(c => `cid:${c}:uid:${uid}:tids`)),
shares: db.sortedSetCard(`uid:${uid}:shares`),
};
if (userData.isAdmin || userData.isSelf) {
promises.uploaded = db.sortedSetCard(`uid:${uid}:uploads`);

View File

@@ -147,6 +147,14 @@ const templateToData = {
return cids.map(c => `cid:${c}:uid:${userData.uid}:tids`);
},
},
'account/shares': {
type: 'topics',
noItemsFoundKey: '[[user:has-no-shares]]',
crumb: '[[user:shares]]',
getSets: async function (callerUid, userData) {
return `uid:${userData.uid}:shares`;
},
},
};
postsController.getBookmarks = async function (req, res, next) {
@@ -189,6 +197,10 @@ postsController.getTopics = async function (req, res, next) {
await getPostsFromUserSet('account/topics', req, res, next);
};
postsController.getShares = async function (req, res, next) {
await getPostsFromUserSet('account/shares', req, res, next);
};
async function getPostsFromUserSet(template, req, res) {
const data = templateToData[template];
const page = Math.max(1, parseInt(req.query.page, 10) || 1);