76 lines
2.2 KiB
JavaScript
76 lines
2.2 KiB
JavaScript
const db = require("../models");
|
|
const { Op } = require("sequelize");
|
|
const { Sequelize } = require("sequelize");
|
|
const { UnitMaster } = require("../models");
|
|
|
|
// Create new Unit
|
|
exports.createUnit = async (req, res) => {
|
|
try {
|
|
const unit = await UnitMaster.create(req.body);
|
|
res.status(201).json({ status: "success", data: unit });
|
|
} catch (err) {
|
|
res.status(400).json({ status: "error", message: err.message });
|
|
}
|
|
};
|
|
|
|
// Get all Units
|
|
exports.getAllUnits = async (req, res) => {
|
|
try {
|
|
const units = await UnitMaster.findAll({
|
|
attributes: {
|
|
include: [
|
|
[
|
|
Sequelize.literal(
|
|
`(SELECT COUNT(*) FROM products AS P WHERE P.unit_id = UnitMaster.id)`
|
|
),
|
|
"mapped_products_count",
|
|
],
|
|
],
|
|
},
|
|
logging: console.log
|
|
});
|
|
|
|
res.status(200).json({ status: "success",unit_count : units.length, data: units });
|
|
} catch (err) {
|
|
res.status(500).json({ status: "error", message: err.message });
|
|
}
|
|
};
|
|
|
|
|
|
// Get Unit by ID
|
|
exports.getUnitById = async (req, res) => {
|
|
try {
|
|
const unit = await UnitMaster.findByPk(req.params.id);
|
|
if (!unit) return res.status(404).json({ status: "error", message: "Unit not found" });
|
|
res.status(200).json({ status: "success", data: unit });
|
|
} catch (err) {
|
|
res.status(500).json({ status: "error", message: err.message });
|
|
}
|
|
};
|
|
|
|
// Update Unit
|
|
exports.updateUnit = async (req, res) => {
|
|
try {
|
|
const unit = await UnitMaster.findByPk(req.params.id);
|
|
if (!unit) return res.status(404).json({ status: "error", message: "Unit not found" });
|
|
|
|
await unit.update(req.body);
|
|
res.status(200).json({ status: "success", data: unit });
|
|
} catch (err) {
|
|
res.status(400).json({ status: "error", message: err.message });
|
|
}
|
|
};
|
|
|
|
// Delete Unit
|
|
exports.deleteUnit = async (req, res) => {
|
|
try {
|
|
const unit = await UnitMaster.findByPk(req.params.id);
|
|
if (!unit) return res.status(404).json({ status: "error", message: "Unit not found" });
|
|
|
|
await unit.destroy();
|
|
res.status(200).json({ status: "success", message: "Unit deleted successfully" });
|
|
} catch (err) {
|
|
res.status(500).json({ status: "error", message: err.message });
|
|
}
|
|
};
|