const router = require("express").Router(); const presupuesto = require("../models/presupuestoMes").Presupuesto; const itemPresupuesto = require("../models/presupuestoMes").itemPresupuesto; const { checkAuth } = require("../middlewares/authentication"); router.get("/presupuesto", checkAuth, async (req, res) => { var presupuestos; presupuestos = await presupuesto.find({ user: req.userData._id }).sort({ date: "desc", }); return res.send({ status: "ok", data: presupuestos, }); }); router.post("/presupuesto", checkAuth, async (req, res) => { const { nombrePresupuesto } = req.body; var presupuestos = await presupuesto.find({ user: req.userData._id, nombrePresupuesto: nombrePresupuesto, }); if (presupuestos.length == 0) { const Presupuesto = new presupuesto({ nombrePresupuesto: nombrePresupuesto, }); console.log(Presupuesto); Presupuesto.user = req.userData._id; await Presupuesto.save(); return res.json({ status: "OK", }); } return res.status(500).json({ status: "FAIL", }); }); router.delete("/presupuesto", checkAuth, async (req, res) => { try { const userId = req.userData._id; const id = req.query.id; const resultado = await presupuesto.deleteOne({ user: userId, _id: id }); return res.json({ status: "ok", data: resultado }); } catch (error) { console.log(error); return res.status(500).json({ status: "fail", error: error }); } }); router.put("/presupuesto", checkAuth, async (req, res) => { const { _id, detalle, valor, tipo } = req.body; const presupuesto_edit = await presupuesto.findOne({ _id: _id, user: req.userData._id, }); const itemP = new itemPresupuesto({ detalle, valor, tipo }); presupuesto_edit.datos.push(itemP); await presupuesto_edit.save(); res.json({ status: "OK", }); }); router.get("/presupuesto_items", checkAuth, async (req, res) => { const _id = req.query.presupuesto_id; const presupuesto_edit = await presupuesto.findOne({ _id: _id, user: req.userData._id, }); return res.json({ status: "OK", data: presupuesto_edit.datos, }); }); router.delete("/presupuestoitem", checkAuth, async (req, res) => { try { const userId = req.userData._id; const iditem = req.query.iditem; const idPresupuesto = req.query.idPresupuesto; var presupuesto_edit = await presupuesto.findOne({ user: userId, _id: idPresupuesto, }); presupuesto_edit.datos.id(iditem).remove(); await presupuesto_edit.save(); return res.json({ status: "ok" }); } catch (error) { console.log(error); return res.status(500).json({ status: "fail", error: error }); } }); module.exports = router;