diff --git a/server/db.js b/server/db.js index cd8308c1b..9f33452ba 100644 --- a/server/db.js +++ b/server/db.js @@ -27,8 +27,8 @@ const disconnect = async ()=>{ }; const connect = async (config)=>{ - return await Mongoose.connect(getMongoDBURL(config), - { retryWrites: false }, handleConnectionError); + return await Mongoose.connect(getMongoDBURL(config), { retryWrites: false }) + .catch(error=>handleConnectionError(error)); }; module.exports = { diff --git a/server/homebrew.model.js b/server/homebrew.model.js index 104309a28..51ed97e75 100644 --- a/server/homebrew.model.js +++ b/server/homebrew.model.js @@ -40,30 +40,24 @@ HomebrewSchema.statics.increaseView = async function(query) { return brew; }; -HomebrewSchema.statics.get = function(query, fields=null){ - return new Promise((resolve, reject)=>{ - 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); - brews[0].text = unzipped.toString(); - } - return resolve(brews[0]); - }); - }); +HomebrewSchema.statics.get = async function(query, fields=null){ + const brew = await Homebrew.findOne(query, fields).orFail() + .catch(error=>{throw 'Can not find brew'}); + if(!_.isNil(brew.textBin)) { // Uncompress zipped text field + unzipped = zlib.inflateRawSync(brew.textBin); + brew.text = unzipped.toString(); + } + return brew; }; -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, fields).lean().exec((err, brews)=>{ //lean() converts results to JSObjects - if(err) return reject('Can not find brew'); - return resolve(brews); - }); - }); +HomebrewSchema.statics.getByUser = async function(username, allowAccess=false, fields=null){ + const query = { authors: username, published: true }; + if(allowAccess){ + delete query.published; + } + const brews = await Homebrew.find(query, fields).lean().exec() //lean() converts results to JSObjects + .catch(error=>{throw 'Can not find brews'}); + return brews; }; const Homebrew = mongoose.model('Homebrew', HomebrewSchema);