const express = require('express'); const multer = require('multer'); const path = require('path'); const { auth, adminOnly } = require('../middleware/auth'); const router = express.Router(); // Configure multer for image upload const storage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, 'public/images/items/'); }, filename: (req, file, cb) => { const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9); cb(null, 'item-' + uniqueSuffix + path.extname(file.originalname)); } }); const upload = multer({ storage: storage, fileFilter: (req, file, cb) => { if (file.mimetype.startsWith('image/')) { cb(null, true); } else { cb(new Error('Not an image! Please upload an image.'), false); } } }); // Upload image route router.post('/', auth, adminOnly, upload.single('image'), async (req, res) => { try { if (!req.file) { return res.status(400).json({ message: 'No file uploaded' }); } const imageUrl = `/images/items/${req.file.filename}`; res.json({ imageUrl }); } catch (error) { res.status(500).json({ message: error.message }); } }); module.exports = router;