From 00661fd99e35500a208983a2b616f78ceb397c60 Mon Sep 17 00:00:00 2001 From: OpenClaw Date: Fri, 6 Mar 2026 17:34:20 +0000 Subject: [PATCH] auto(agent): added try/catch block and improved error handling in reviews.js --- backend/src/routes/reviews.js | 39 ++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/backend/src/routes/reviews.js b/backend/src/routes/reviews.js index 646e05a..3f0f2db 100644 --- a/backend/src/routes/reviews.js +++ b/backend/src/routes/reviews.js @@ -6,24 +6,35 @@ import { requireAuth } from '../middleware/auth.js'; const router = Router(); router.post('/:dealId', requireAuth, async (req, res) => { - const dealId = Number(req.params.dealId); - const parsed = z.object({ revieweeId: z.number().int().positive(), rating: z.number().int().min(1).max(5), comment: z.string().max(2000).optional() }).safeParse(req.body); + try { + const dealId = Number(req.params.dealId); + const parsed = z.object({ + revieweeId: z.number().int().positive(), + rating: z.number().int().min(1).max(5), + comment: z.string().max(2000).optional() + }).safeParse(req.body); - if (!parsed.success || Number.isNaN(dealId)) return res.status(400).json({ error: 'Invalid payload' }); + if (!parsed.success || Number.isNaN(dealId)) { + return res.status(400).json({ error: 'Invalid payload' }); + } - const now = new Date(); - const earliest = new Date(now.getTime() + 2 * 24 * 60 * 60 * 1000); - const latest = new Date(now.getTime() + 14 * 24 * 60 * 60 * 1000); + const now = new Date(); + const earliest = new Date(now.getTime() + 2 * 24 * 60 * 60 * 1000); + const latest = new Date(now.getTime() + 14 * 24 * 60 * 60 * 1000); - const { revieweeId, rating, comment } = parsed.data; + const { revieweeId, rating, comment } = parsed.data; - const [result] = await pool.query( - `INSERT INTO reviews (deal_id, reviewer_id, reviewee_id, rating, comment, earliest_prompt_at, latest_prompt_at) - VALUES (?, ?, ?, ?, ?, ?, ?)`, - [dealId, req.user.userId, revieweeId, rating, comment || null, earliest, latest] - ); + const [result] = await pool.query( + `INSERT INTO reviews (deal_id, reviewer_id, reviewee_id, rating, comment, earliest_prompt_at, latest_prompt_at) + VALUES (?, ?, ?, ?, ?, ?, ?)`, + [dealId, req.user.userId, revieweeId, rating, comment || null, earliest, latest] + ); - res.status(201).json({ id: result.insertId }); + res.status(201).json({ id: result.insertId }); + } catch (error) { + console.error('Error creating review:', error); + res.status(500).json({ error: 'Internal server error' }); + } }); -export default router; +export default router; \ No newline at end of file