Skip to content

Commit 8cf998f

Browse files
committed
feat(imageroutes.js): upload event images
1 parent 177aeb6 commit 8cf998f

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/routes/imageRoutes.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,35 @@ router.post('/upload/:ideaId', upload, async (req, res) => {
3333
}
3434
});
3535

36+
router.post('/upload-event/:eventId', upload, async (req, res) => {
37+
try {
38+
const { eventId } = req.params;
39+
const files = req.files;
40+
41+
if (!files || files.length === 0) {
42+
console.log('❌ No files uploaded');
43+
return res.status(400).json({ message: 'No files uploaded' });
44+
}
45+
46+
// OPTIONAL: Get event name from DB if you want cleaner folder names
47+
const eventQuery = await pool.query('SELECT title FROM events WHERE id = $1', [eventId]);
48+
const eventName = eventQuery.rows[0]?.title?.replace(/\s+/g, '-').toLowerCase() || `event-${eventId}`;
49+
50+
const uploaded = await cloudinaryUploadFiles(files, 'votte_events', `event-${eventId}-${eventName}`);
51+
52+
// Save image_url to DB
53+
await pool.query(`UPDATE events SET image_url = $1 WHERE id = $2`, [uploaded[0].cloudinary_url, eventId]);
54+
55+
res.status(201).json({
56+
message: 'Image uploaded and event updated successfully',
57+
data: uploaded[0],
58+
});
59+
} catch (err) {
60+
console.error('❌ Upload error:', err.message);
61+
res.status(500).json({ message: 'Upload failed', error: err.message });
62+
}
63+
});
64+
65+
3666

3767
module.exports = router;

0 commit comments

Comments
 (0)