Add category edit action
This commit is contained in:
@@ -10,7 +10,8 @@ const {
|
||||
getCatalogSummary,
|
||||
listCategories,
|
||||
listConsumptionReferences,
|
||||
listProducts
|
||||
listProducts,
|
||||
updateCategory
|
||||
} = require('../services/catalogService');
|
||||
const { importTinyProductCompositionExport } = require('../services/productionOrderService');
|
||||
|
||||
@@ -40,6 +41,14 @@ router.post('/catalog/categories', verifyToken, async (req, res, next) => {
|
||||
}
|
||||
});
|
||||
|
||||
router.put('/catalog/categories/:id', verifyToken, async (req, res, next) => {
|
||||
try {
|
||||
res.json(await updateCategory(req.params.id, req.body || {}));
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
});
|
||||
|
||||
router.delete('/catalog/categories/:id', verifyToken, async (req, res, next) => {
|
||||
try {
|
||||
await deleteCategory(req.params.id);
|
||||
|
||||
@@ -110,6 +110,33 @@ const createCategory = async ({ name, description }) => {
|
||||
return mapCategory(result.rows[0]);
|
||||
};
|
||||
|
||||
const updateCategory = async (id, { name, description }) => {
|
||||
const normalizedId = Number(id);
|
||||
const normalizedName = normalizeText(name);
|
||||
if (!normalizedId || !normalizedName) {
|
||||
const error = new Error('Nome da categoria é obrigatório.');
|
||||
error.statusCode = 400;
|
||||
throw error;
|
||||
}
|
||||
|
||||
const result = await pool.query(`
|
||||
UPDATE catalog_categories
|
||||
SET name = $1,
|
||||
description = $2,
|
||||
updated_at = CURRENT_TIMESTAMP
|
||||
WHERE id = $3
|
||||
RETURNING id, name, description, created_at, updated_at
|
||||
`, [normalizedName, normalizeText(description) || null, normalizedId]);
|
||||
|
||||
if (!result.rows.length) {
|
||||
const error = new Error('Categoria não encontrada.');
|
||||
error.statusCode = 404;
|
||||
throw error;
|
||||
}
|
||||
|
||||
return mapCategory(result.rows[0]);
|
||||
};
|
||||
|
||||
const deleteCategory = async (id) => {
|
||||
await pool.query('DELETE FROM catalog_categories WHERE id = $1', [id]);
|
||||
};
|
||||
@@ -272,5 +299,6 @@ module.exports = {
|
||||
getCatalogSummary,
|
||||
listCategories,
|
||||
listConsumptionReferences,
|
||||
listProducts
|
||||
listProducts,
|
||||
updateCategory
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user