0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2025-12-24 20:42:43 +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)=>{
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;
brew.markModified('lock');
if(!brew.lock) return res.json({ status: 'NOT LOCKED', detail: `Brew ID ${req.params.id} is not locked!` });
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}` });
});
router.get('/api/lock/reviews', mw.adminOnly, async (req, res)=>{
try {
const countReviewsPipeline = [
{
const countReviewsPipeline = [
{
$match :
{
'lock.reviewRequested' : { '$exists': 1 }
},
}
];
const reviewDocuments = await HomebrewModel.aggregate(countReviewsPipeline);
return res.json({
reviewDocuments
}
];
const reviewDocuments = await HomebrewModel.aggregate(countReviewsPipeline)
.catch((error)=>{
console.error(error);
return res.json({ status: 'ERROR', detail: 'Unable to get review collection', error });
});
} catch (error) {
console.error(error);
return res.json({ status: 'ERROR', detail: 'Unable to get review collection', error });
}
return res.json({
reviewDocuments
});
});
router.put('/admin/lock/review/request/:id', async (req, res)=>{