const express = require("express"); const Street = require("../models/Street"); const auth = require("../middleware/auth"); const router = express.Router(); // Get all streets router.get("/", async (req, res) => { try { const streets = await Street.find(); res.json(streets); } catch (err) { console.error(err.message); res.status(500).send("Server error"); } }); // Get single street router.get("/:id", async (req, res) => { try { const street = await Street.findById(req.params.id); if (!street) { return res.status(404).json({ msg: "Street not found" }); } res.json(street); } catch (err) { console.error(err.message); res.status(500).send("Server error"); } }); // Create a street router.post("/", auth, async (req, res) => { const { name, location } = req.body; try { const newStreet = new Street({ name, location, }); const street = await newStreet.save(); res.json(street); } catch (err) { console.error(err.message); res.status(500).send("Server error"); } }); // Adopt a street router.put("/adopt/:id", auth, async (req, res) => { try { const street = await Street.findById(req.params.id); if (!street) { return res.status(404).json({ msg: "Street not found" }); } if (street.status === "adopted") { return res.status(400).json({ msg: "Street already adopted" }); } street.adoptedBy = req.user.id; street.status = "adopted"; await street.save(); res.json(street); } catch (err) { console.error(err.message); res.status(500).send("Server error"); } }); module.exports = router;