const express = require('express'); const router = express.Router(); const Customer = require('../models/Customer'); const auth = require('../middleware/auth'); // Get all customers router.get('/', auth, async (req, res) => { try { const customers = await Customer.find().sort({ name: 1 }); res.json(customers); } catch (err) { res.status(500).json({ message: err.message }); } }); // Get single customer router.get('/:id', auth, async (req, res) => { try { const customer = await Customer.findById(req.params.id); if (!customer) { return res.status(404).json({ message: 'Customer not found' }); } res.json(customer); } catch (err) { res.status(500).json({ message: err.message }); } }); // Create customer router.post('/', auth, async (req, res) => { const customer = new Customer({ name: req.body.name, email: req.body.email, phone: req.body.phone, address: req.body.address, carModel: req.body.carModel, carYear: req.body.carYear, }); try { const newCustomer = await customer.save(); res.status(201).json(newCustomer); } catch (err) { res.status(400).json({ message: err.message }); } }); // Update customer router.put('/:id', auth, async (req, res) => { try { const customer = await Customer.findById(req.params.id); if (!customer) { return res.status(404).json({ message: 'Customer not found' }); } Object.assign(customer, req.body); const updatedCustomer = await customer.save(); res.json(updatedCustomer); } catch (err) { res.status(400).json({ message: err.message }); } }); // Delete customer router.delete('/:id', auth, async (req, res) => { try { const customer = await Customer.findById(req.params.id); if (!customer) { return res.status(404).json({ message: 'Customer not found' }); } await customer.remove(); res.json({ message: 'Customer deleted' }); } catch (err) { res.status(500).json({ message: err.message }); } }); module.exports = router;