//Se declara express const express = require("express"); //subir archivos const multer = require("multer"); //Se inicializa express var app = express(); //Response const response = require("../../network/response"); //Agrega controlador const controller = require("./controller"); const upload = multer({ dest: "public/images/supplies", }); //redirecciona a metodo GET app.get("/", async function (req, res) { try { const filterSupplies = req.query.id || null; const supplyList = await controller.getSupplies(filterSupplies); response.success(req, res, supplyList, 201); } catch (error) { response.error(req, res, error, 401); } }); //redirecciona a metodo GET app.get("/trash", async function (req, res) { try { const supplyList = await controller.getDeletedSupplies(); response.success(req, res, supplyList, 201); } catch (error) { response.error(req, res, error, 401); } }); app.get("/listproviders", async function (req, res) { try { const filterSupplies = req.query.id || null; const supplyList = await controller.listProviders(filterSupplies); response.success(req, res, supplyList, 201); } catch (error) { response.error(req, res, error, 401); } }); //redirecciona a metodo POST app.post("/", upload.single("imageSupply"), async (req, res) => { try { console.log(req.body.amount) const fullSupply = await controller.addSupply( req.body.name, req.body.unity, req.body.providers, req.file, req.body.category, req.body.description, req.body.code, req.body.location, req.body.note, req.body.quantity, req.body.amount ); response.success(req, res, fullSupply, 201); } catch (error) { response.error(req, res, error, 401); } }); ///udpate Supply witch patch app.patch("/:id", upload.single("imageSupply"), async (req, res) => { try{ const updatedSupply = await controller.update( req.params.id, req.body.name, req.file, req.body.description, req.body.location, req.body.category, req.body.code, req.body.providers, req.body.unity, ); response.success(req, res, updatedSupply, 201); } catch (error){ response.error(req, res, error, 401); } ; }); //delete supply statusDB false app.patch("/totrash/:id", async (req, res) => { try{ const stateStatusDb = await controller.updateStatusDB(req.params.id); response.success(req, res, stateStatusDb, 201); }catch (error){ response.error(req, res, error, 401); } }); app.delete("/:id", async (req, res) => { try { const deletedSupply = await controller.deleteSupply( req.params.id, req.body.name ); response.success(req, res, deletedSupply, 201); } catch (error) { response.error(req, res, error, 401); } }); // assign provider app.patch("/assign/:id", async (req, res) => { controller .assignProvider(req.params.id, req.body.idProvider) .then((data) => { const message = `El proveedor ${req.body.idProvider} fue agregado`; response.success(req, res, message, 200); }) .catch((err) => { response.error(req, res, err, 500); }); }); //assign provider and price app.patch("/assignPrice/:id/", async (req, res) => { controller .assignProviderPrice( req.params.id, req.body.provider, req.body.price ) .then((data) => { const message = `El proveedor ${req.params.provider} fue agregado`; response.success(req, res, message, 200); }) .catch((err) => { response.error(req, res, err, 500); }); }); //remove provider app.patch("/remove/:id", async (req, res) => { controller .removeProvider(req.params.id, req.body.idProvider) .then((data) => { const message = `El proveedor ${req.body.idProvider} fue eliminado`; response.success(req, res, message, 200); }) .catch((err) => { response.error(req, res, err, 500); }); }); // udpate note app.patch("/updatenote/:id", async (req, res) => { try{ const note = req.body.note const updateNote = await controller.updateNote(req.params.id, note); response.success(req, res, updateNote, 201); }catch (error){ response.error(req, res, error, 401); } }); module.exports = app;