newtbot c268e1d33d Add routes to get location and sensor by name
Added viewdata using chart.js
2024-01-29 00:44:10 +08:00

104 lines
1.8 KiB
JavaScript

const { sensorModel } = require("../database/model/sensorModel");
const {Op} = require("sequelize");
async function getSensor() {
const sensor = await sensorModel.findAll();
return sensor;
}
async function addSensor(
sensorname,
added_by,
mac_address,
description,
location
) {
const sensor = await sensorModel.create({
name: sensorname,
added_by: added_by,
mac_address: mac_address,
description: description,
location: location,
});
}
async function updateSensor(
id,
sensorname,
added_by,
mac_address,
description,
location
) {
const sensor = await sensorModel.update(
{
name: sensorname,
added_by: added_by,
mac_address: mac_address,
description: description,
location: location,
},
{
where: {
id: id,
},
}
);
}
async function deleteSensor(id) {
//delete by id
const sensor = await sensorModel.destroy({
//cascade delete
onDelete: "cascade",
where: {
id: id,
},
});
}
/*
async function getLocationByName(name) {
const location = await locationModel.findAll({
where: {
[Op.or]: [
{name: {[Op.like]: "%" + name + "%"}},
{added_by: {[Op.like]: "%" + name + "%"}},
{description: {[Op.like]: "%" + name + "%"}},
],
},
});
return location;
}
*/
async function getSensorByName(name) {
const sensor = await sensorModel.findAll({
where: {
[Op.or]: [
{name: {[Op.like]: "%" + name + "%"}},
{added_by: {[Op.like]: "%" + name + "%"}},
{mac_address: {[Op.like]: "%" + name + "%"}},
{description: {[Op.like]: "%" + name + "%"}},
],
},
});
return sensor;
}
async function getSensorById(id) {
const sensor = await sensorModel.findAll({
where: {
id: id,
},
});
return sensor;
}
module.exports = {
getSensor,
addSensor,
updateSensor,
deleteSensor,
getSensorByName,
getSensorById,
};