You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
181 lines
4.2 KiB
181 lines
4.2 KiB
//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;
|
|
|