From cffe08b7852e07af3fc3b156b5c5df4566680c01 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Thu, 28 Apr 2022 11:09:32 +1200 Subject: [PATCH] Add fields to Mongoose query --- server/app.js | 4 +++- server/homebrew.model.js | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/server/app.js b/server/app.js index adb741b32..7d1e54d80 100644 --- a/server/app.js +++ b/server/app.js @@ -194,7 +194,9 @@ app.get('/download/:id', asyncHandler(async (req, res)=>{ app.get('/user/:username', async (req, res, next)=>{ const ownAccount = req.account && (req.account.username == req.params.username); - let brews = await HomebrewModel.getByUser(req.params.username, ownAccount) + const fields = 'title pageCount description authors views shareId editId createdAt updatedAt lastViewed'; + + let brews = await HomebrewModel.getByUser(req.params.username, ownAccount, fields) .catch((err)=>{ console.log(err); }); diff --git a/server/homebrew.model.js b/server/homebrew.model.js index be6b2f6cd..d0692f0a9 100644 --- a/server/homebrew.model.js +++ b/server/homebrew.model.js @@ -37,9 +37,9 @@ HomebrewSchema.statics.increaseView = async function(query) { return brew; }; -HomebrewSchema.statics.get = function(query){ +HomebrewSchema.statics.get = function(query, fields=null){ return new Promise((resolve, reject)=>{ - Homebrew.find(query, (err, brews)=>{ + Homebrew.find(query, fields, null, (err, brews)=>{ if(err || !brews.length) return reject('Can not find brew'); if(!_.isNil(brews[0].textBin)) { // Uncompress zipped text field unzipped = zlib.inflateRawSync(brews[0].textBin); @@ -52,13 +52,13 @@ HomebrewSchema.statics.get = function(query){ }); }; -HomebrewSchema.statics.getByUser = function(username, allowAccess=false){ +HomebrewSchema.statics.getByUser = function(username, allowAccess=false, fields=null){ return new Promise((resolve, reject)=>{ const query = { authors: username, published: true }; if(allowAccess){ delete query.published; } - Homebrew.find(query).lean().exec((err, brews)=>{ //lean() converts results to JSObjects + Homebrew.find(query, fields).lean().exec((err, brews)=>{ //lean() converts results to JSObjects if(err) return reject('Can not find brew'); return resolve(brews); });