const router = require('express').Router() const {MasterModel} = require('./model/master') const mongoose = require("mongoose") router.get('/masters', async (req, res,next) => { try { const master = await MasterModel.find({}) res.status(200).send({success: true, body: master}) } catch (error) { next(error) } }) router.delete('/masters/:id', async (req, res,next) => { const { id } = req.params; if (!mongoose.Types.ObjectId.isValid(id)){ throw new Error('ID is required') } try { const master = await MasterModel.findByIdAndDelete(id, { new: true, }); if (!master) { throw new Error('master not found') } res.status(200).send({success: true, body: master}) } catch (error) { next(error) } }) router.post('/masters', async (req, res,next) => { const {name, phone} = req.body if (!name || !phone ){ throw new Error('Enter name and phone') } try { const master = await MasterModel.create({name, phone}) res.status(200).send({success: true, body: master}) } catch (error) { next(error) } }) router.patch('/masters/:id', async (req, res, next) => { const { id } = req.params; if (!mongoose.Types.ObjectId.isValid(id)) { throw new Error('ID is required') } const { name, phone } = req.body; if (!name && !phone) { throw new Error('Enter name and phone') } try { const updateData = {}; if (name) updateData.name = name; if (phone) updateData.phone = phone; const master = await MasterModel.findByIdAndUpdate( id, updateData, { new: true } ); if (!master) { throw new Error('master not found') } res.status(200).send({ success: true, body: master }); } catch (error) { next(error); } }); module.exports = router