0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-05 18:52:38 +00:00

Refactor /api/lock/reviews

This commit is contained in:
G.Ambatte
2025-04-07 08:33:39 +12:00
parent fa4b2ae0e3
commit 3cf98617f5

View File

@@ -210,47 +210,48 @@ router.post('/api/lock/:id', mw.adminOnly, async (req, res)=>{
}); });
router.put('/api/unlock/:id', mw.adminOnly, async (req, res)=>{ router.put('/api/unlock/:id', mw.adminOnly, async (req, res)=>{
try {
const filter = {
shareId : req.params.id
};
const brew = await HomebrewModel.findOne(filter); const filter = {
shareId : req.params.id
};
if(!brew.lock) return res.json({ status: 'NOT LOCKED', detail: `Brew ID ${req.params.id} is not locked!` }); const brew = await HomebrewModel.findOne(filter);
brew.lock = undefined; if(!brew.lock) return res.json({ status: 'NOT LOCKED', detail: `Brew ID ${req.params.id} is not locked!` });
brew.markModified('lock');
await brew.save(); brew.lock = undefined;
brew.markModified('lock');
await brew.save()
.catch((error)=>{
console.error(error);
return res.json({ status: 'ERROR', detail: `Unable to clear lock on brew ${req.params.id}`, error });
});
// console.log(`Lock removed from brew ID ${brew.shareId} - ${brew.title}`);
// console.log(`Lock removed from brew ID ${brew.shareId} - ${brew.title}`);
} catch (error) {
console.error(error);
return res.json({ status: 'ERROR', detail: `Unable to clear lock on brew ${req.params.id}`, error });
}
return res.json({ status: 'UNLOCKED', detail: `Lock removed from brew ID ${req.params.id}` }); return res.json({ status: 'UNLOCKED', detail: `Lock removed from brew ID ${req.params.id}` });
}); });
router.get('/api/lock/reviews', mw.adminOnly, async (req, res)=>{ router.get('/api/lock/reviews', mw.adminOnly, async (req, res)=>{
try { const countReviewsPipeline = [
const countReviewsPipeline = [ {
{
$match : $match :
{ {
'lock.reviewRequested' : { '$exists': 1 } 'lock.reviewRequested' : { '$exists': 1 }
}, },
} }
]; ];
const reviewDocuments = await HomebrewModel.aggregate(countReviewsPipeline); const reviewDocuments = await HomebrewModel.aggregate(countReviewsPipeline)
return res.json({ .catch((error)=>{
reviewDocuments console.error(error);
return res.json({ status: 'ERROR', detail: 'Unable to get review collection', error });
}); });
} catch (error) { return res.json({
console.error(error); reviewDocuments
return res.json({ status: 'ERROR', detail: 'Unable to get review collection', error }); });
}
}); });
router.put('/admin/lock/review/request/:id', async (req, res)=>{ router.put('/admin/lock/review/request/:id', async (req, res)=>{