Establishment mapped count added in product list : GWM
This commit is contained in:
parent
5c4bc028ba
commit
28fcfbebd4
@ -1,10 +1,13 @@
|
||||
const db = require("../models");
|
||||
const Product = db.Product;
|
||||
const fs = require("fs");
|
||||
const csv = require("csv-parser");
|
||||
const path = require("path");
|
||||
const db = require("../models");
|
||||
const { Sequelize } = require("sequelize");
|
||||
const Product = db.Product;
|
||||
const UnitMaster = db.UnitMaster;
|
||||
|
||||
|
||||
|
||||
exports.createProduct = async (req, res) => {
|
||||
try {
|
||||
|
||||
@ -13,7 +16,7 @@ exports.createProduct = async (req, res) => {
|
||||
res.status(201).send({'status':"success",'message':"created successfully",'data': data });
|
||||
|
||||
} catch (error) {
|
||||
res.status(500).send({'status':"failed",'message':err.message });
|
||||
res.status(500).send({'status':"failed",'message':error.message });
|
||||
}
|
||||
};
|
||||
|
||||
@ -21,6 +24,16 @@ exports.getAllProducts = async (req, res) => {
|
||||
try {
|
||||
|
||||
const data = await Product.findAll({
|
||||
attributes: {
|
||||
include: [
|
||||
[
|
||||
Sequelize.literal(
|
||||
`(SELECT COUNT(*) FROM establishment_products AS EP WHERE EP.product_id = products.id)`
|
||||
),
|
||||
"mapped_establishment_count",
|
||||
],
|
||||
],
|
||||
},
|
||||
include: [
|
||||
{
|
||||
model: UnitMaster,
|
||||
@ -28,12 +41,15 @@ exports.getAllProducts = async (req, res) => {
|
||||
attributes: ["uom"],
|
||||
},
|
||||
],
|
||||
order: [
|
||||
[Sequelize.literal("COALESCE(products.updated_at, products.created_at) DESC")],
|
||||
],
|
||||
});
|
||||
|
||||
res.status(200).send({'status':"success",'message':"Fetched successfully",'product_count': data.length, 'data': data });
|
||||
|
||||
} catch (error) {
|
||||
res.status(500).send({'status':"failed",'message':err.message });
|
||||
res.status(500).send({'status':"failed",'message':error.message });
|
||||
}
|
||||
};
|
||||
|
||||
@ -47,24 +63,30 @@ exports.getProductById = async (req, res) => {
|
||||
res.status(200).send({'status':"success",'message':"Fetched successfully",'data': data });
|
||||
|
||||
} catch (error) {
|
||||
res.status(500).send({'status':"failed",'message':err.message });
|
||||
res.status(500).send({'status':"failed",'message':error.message });
|
||||
}
|
||||
};
|
||||
|
||||
exports.updateProduct = async (req, res) => {
|
||||
try {
|
||||
|
||||
const [updated] = await Product.update(req.body, { where: { id: req.params.id } });
|
||||
const object = {
|
||||
...req.body,
|
||||
updated_at: Sequelize.literal("NOW()")
|
||||
};
|
||||
|
||||
const [updated] = await Product.update(object, { where: { id: req.params.id } });
|
||||
|
||||
if (!updated) res.status(404).send({'status':"failed",'message':"Record Not found",'data': "" });
|
||||
|
||||
res.status(200).send({'status':"success",'message':"Updated successfully",'data': "" });
|
||||
|
||||
} catch (error) {
|
||||
res.status(500).send({'status':"failed",'message':err.message });
|
||||
res.status(500).send({'status':"failed",'message':error.message });
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
exports.deleteProduct = async (req, res) => {
|
||||
try {
|
||||
|
||||
@ -75,9 +97,10 @@ exports.deleteProduct = async (req, res) => {
|
||||
res.status(200).send({'status':"success",'message':"Deleted successfully",'data': "" });
|
||||
|
||||
} catch (error) {
|
||||
res.status(500).send({'status':"failed",'message':err.message });
|
||||
res.status(500).send({'status':"failed",'message':error.message });
|
||||
}
|
||||
};
|
||||
|
||||
exports.uploadProductsFromCSV = async (req, res) => {
|
||||
try {
|
||||
// Check if file exists
|
||||
@ -199,7 +222,7 @@ exports.downloadProductSample = async (req, res) => {
|
||||
try {
|
||||
const filePath = path.join(__dirname, "../writable/uploads/sample_files/products_upload_sample.csv");
|
||||
return res.download(filePath, "products_upload_sample.csv");
|
||||
} catch (err) {
|
||||
return res.status(500).send({ status: "failed", message: err.message });
|
||||
} catch (error) {
|
||||
return res.status(500).send({ status: "failed", message: error.message });
|
||||
}
|
||||
};
|
||||
|
||||
@ -27,7 +27,6 @@ exports.getAllUnits = async (req, res) => {
|
||||
],
|
||||
],
|
||||
},
|
||||
logging: console.log
|
||||
});
|
||||
|
||||
res.status(200).json({ status: "success",unit_count : units.length, data: units });
|
||||
|
||||
Loading…
Reference in New Issue
Block a user