Files
finanzas_api/routes/presupuesto.js
2021-06-15 19:36:51 -05:00

111 lines
2.7 KiB
JavaScript

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;
let limite = req.get('limite');
presupuestos = await presupuesto.find({ user: req.userData._id }).sort({
date: "desc",
}).limit(parseInt(limite));
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;