api for sensor count and switch count

master
Varun 10 months ago
parent f4a50e5ef3
commit 2dd606136a

@ -105,7 +105,7 @@ exports.addTanks = async (req, reply) => {
if (existingTank) { if (existingTank) {
throw new Error('The combination of hardwareId and tankhardwareId already exists.'); throw new Error('The combination of hardwareId and tankhardwareId already exists.');
} }
const tankData = { const tankData = {
// InstallerId:InstallerId, // InstallerId:InstallerId,
customerId: customerId, customerId: customerId,
@ -222,6 +222,64 @@ exports.getTank = async (req, reply) => {
} }
}; };
exports.getTanksensorcount = async (req, reply) => {
try {
const { customerId } = req.params;
// Aggregate to count need_sensor values
const needSensorCounts = await Tank.aggregate([
{ $match: { customerId } },
{
$group: {
_id: "$need_sensor",
count: { $sum: 1 },
},
},
]);
const inputIsMotorCounts = await Tank.aggregate([
{ $match: { customerId } },
{ $unwind: "$connections.inputConnections" },
{
$group: {
_id: "$connections.inputConnections.inputismotor",
count: { $sum: 1 },
},
},
]);
// Format the results
const needSensorResult = needSensorCounts.reduce((acc, item) => {
acc[item._id] = item.count;
return acc;
}, {});
const inputIsMotorResult = inputIsMotorCounts.reduce((acc, item) => {
acc[item._id ? "true" : "false"] = item.count;
return acc;
}, {});
// Return the response
reply.send({
customerId,
needSensor: {
yes: needSensorResult["yes"] || 0,
no: needSensorResult["no"] || 0,
},
inputIsMotor: {
true: inputIsMotorResult["true"] || 0,
false: inputIsMotorResult["false"] || 0,
},
});
} catch (error) {
reply.status(500).send({ error: "An error occurred while fetching the data." });
}
};
exports.getTanksofParticularInstaller = async (req, reply) => { exports.getTanksofParticularInstaller = async (req, reply) => {
try { try {
await Tank.find({InstallerId: req.query.InstallerId}) await Tank.find({InstallerId: req.query.InstallerId})

@ -207,6 +207,37 @@ module.exports = function (fastify, opts, next) {
handler: tanksController.getTank, handler: tanksController.getTank,
}); });
fastify.get("/api/getTanksensorcount/:customerId", {
schema: {
tags: ["Tank"],
description: "This is to Get Tank Sensor Count and Switch Count",
summary: "This is to Get Tank Tank Sensor Count and Switch Count",
params: {
required: ["customerId"],
type: "object",
properties: {
customerId: {
type: "string",
description: "customerId",
},
},
},
security: [
{
basicAuth: [],
},
],
},
// preHandler: fastify.auth([fastify.authenticate]),
handler: tanksController.getTanksensorcount,
});
fastify.get("/api/getTanksofParticularInstaller", { fastify.get("/api/getTanksofParticularInstaller", {
schema: { schema: {
tags: ["Install"], tags: ["Install"],

Loading…
Cancel
Save