iot sensor finished

1)with validation on front and backend
2)fixed seed route generating value 0 for data
This commit is contained in:
newtbot
2024-01-14 02:43:27 +08:00
parent a7e1a0028e
commit c00a57d5f6
12 changed files with 417 additions and 148 deletions

View File

@ -231,6 +231,7 @@ buildQuery = {
queryString.month
);
} else {
queryString.month = getMonthFromString(queryString.month)
whereClause.month = sequelize.where(
sequelize.fn("MONTH", sequelize.col("createdAt")),
queryString.month

View File

@ -1,5 +1,6 @@
const { sequelize } = require("../../Database/mySql.js");
const { api_log_Model } = require("../../Database/model/apiLogModel.js");
const { sensorDataModel } = require("../../Database/model/sensorDataModel.js");
async function insertLogData(log){
try{
@ -18,10 +19,23 @@ async function insertLogData(log){
(error){
console.error(error);
}
}
async function insertDatatoDB(data) {
try {
sensorDataModel.create({
sensorid: data.sensorid,
locationid: data.locationid,
measurement: data.measurement,
});
}
catch (error) {
console.error(error);
}
}
module.exports = { insertLogData };
module.exports = { insertLogData , insertDatatoDB};

View File

@ -1,31 +1,6 @@
var validator = require("validator");
// Regular expressions for data validation
const psiPattern = /^\d+$/;
const humidityPattern = /^\d+%$/;
const concentrationPattern = /^\d+ppm$/;
const temperaturePattern = /^-?\d+°C$/;
const windspeedPattern = /^\d+km\/h$/;
const timePattern = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/;
const regionPattern = /^[a-zA-Z-]+$/;
function validateData(data) {
return (
psiPattern.test(data.psi) &&
humidityPattern.test(data.humidity) &&
concentrationPattern.test(data.o3) &&
concentrationPattern.test(data.no2) &&
concentrationPattern.test(data.so2) &&
concentrationPattern.test(data.co) &&
temperaturePattern.test(data.temperature) &&
windspeedPattern.test(data.windspeed) &&
timePattern.test(data.time) &&
regionPattern.test(data.region)
);
}
const dateRegex =
/^[A-Za-z]{3}, \d{2} [A-Za-z]{3} \d{4} \d{2}:\d{2}:\d{2} GMT$/;
const dateRegex = /^[A-Za-z]{3}, \d{2} [A-Za-z]{3} \d{4} \d{2}:\d{2}:\d{2} GMT$/;
function isValidDateString(value) {
return dateRegex.test(value);
@ -55,18 +30,22 @@ function isMacAddress(value) {
function isJson(value) {
//check if its object
if(typeof value === "object"){
console.log("its an object")
return true
}
}
function isNumber(value) {
if (typeof value === "number") {
return true;
}
}
module.exports = {
validateData,
isValidDateString,
isAlphaNumericwithSpaces,
isAlphaNumericWithSpacesAndDash,
isMacAddress,
isJson,
isNumber,
};