diff --git a/dbTools/post.js b/dbTools/post.js index f795abf..46e17af 100644 --- a/dbTools/post.js +++ b/dbTools/post.js @@ -100,8 +100,8 @@ postDB = (DB)=>{ }); } - DB.getPosts = async (profileId) => { - const profile = await DB.getProfile(profileId); + DB.getPosts = async (profileId, viewerProfileId) => { + const profile = await DB.getProfile(viewerProfileId); let query = {}; if(profileId) { const id = DB.ObjectID(profileId); @@ -122,18 +122,24 @@ postDB = (DB)=>{ filterPrivateGroups = async (posts, profile) =>{ let filteredPosts = []; + let following = {}; + profile.following.forEach(element => { + following[element] = 1; + }); + console.log(following) for(i in posts){ let p = posts[i]; let isPostingAPrivateGroup = await DB.isGroupPrivate(p.profileid); let isPostingToAPrivateGroup = p.toProfile ? await DB.isGroupPrivate(p.toProfile) : false; + console.log(following[p.profileid], following[p.toProfile + ""], p.toProfile) if(!isPostingAPrivateGroup && !isPostingToAPrivateGroup){ filteredPosts.push(p); continue; } - if(isPostingAPrivateGroup && !profile[p.profileid]){ + if(isPostingAPrivateGroup && !following[p.profileid + ""]){ continue; } - if(isPostingToAPrivateGroup && !profile[p.toProfile]){ + if(isPostingToAPrivateGroup && !following[p.toProfile + ""]){ continue; } filteredPosts.push(p); @@ -144,8 +150,7 @@ postDB = (DB)=>{ DB.getFeed = async (profileId) => { const profile = await DB.getProfile(profileId); let ids = profile.following.map((id)=>DB.ObjectID(id)); - ids.push(profileId) - const _id = DB.ObjectID(profileId); + ids.push(DB.ObjectID(profileId)) query = { $or: [ {profileid: { diff --git a/routes/post.js b/routes/post.js index c367f15..9325c9f 100644 --- a/routes/post.js +++ b/routes/post.js @@ -21,14 +21,7 @@ DB.getDB.then((DB)=>{ router.get("/usr/:id", async (req, res) => { const profileId = req.params.id; - if(await DB.isGroupPrivate(profileId)){ - let requestProfile = getProfileId(req) + ""; - let group = await DB.getProfileCache(profileId); - if(!group.subscribed[requestProfile] && profileId != requestProfile){ - return res.json([]); - } - } - const posts = await DB.getPosts(profileId); + const posts = await DB.getPosts(profileId, getProfileId(req)); return res.json(posts); });