import express from "express"; import multer from "multer"; import Link from "../models/Link.js"; import { authMiddleware } from "../middleware/auth.js"; const router = express.Router(); // Config upload const storage = multer.diskStorage({ destination: "uploads/", filename: (req, file, cb) => { const unique = Date.now() + "-" + file.originalname; cb(null, unique); } }); const upload = multer({ storage }); // Tutte le rotte protette router.use(authMiddleware); // GET /links - lista dei link dell'utente router.get("/", async (req, res) => { const links = await Link.find({ owner: req.userId }); res.json(links); }); // POST /links - crea nuovo link con eventuale icona router.post("/", upload.single("icon"), async (req, res) => { const { url, name } = req.body; const iconPath = req.file ? `/uploads/${req.file.filename}` : null; const link = await Link.create({ url, name, icon: iconPath, owner: req.userId }); res.json(link); }); // DELETE /links/:id router.delete("/:id", async (req, res) => { const { id } = req.params; const link = await Link.findOneAndDelete({ _id: id, owner: req.userId }); if (!link) return res.status(404).json({ error: "Link non trovato" }); res.json({ success: true }); }); // PUT /links/:id router.put("/:id", upload.single("icon"), async (req, res) => { const { id } = req.params; const { name, url } = req.body; const update = {}; if (name) update.name = name; if (url) update.url = url; if (req.file) update.icon = `/uploads/${req.file.filename}`; const link = await Link.findOneAndUpdate( { _id: id, owner: req.userId }, update, { new: true } ); if (!link) return res.status(404).json({ error: "Link non trovato" }); res.json(link); }); export default router;