const { app } = require("./modules/express.js");
const client   = require("./modules/mqtt");
const { validateData } = require("./functions/validateData.js");
const { insertData } = require("./functions/database.js");
/*
1) validate data from IoT sensor
2) upload data to database
3) add more routes to api
4) add swagger documentation
5) add middleware for authentication
*/

// Event handlers
client.on('connect', () => {
    console.log('Connected to MQTT broker');
    client.subscribe('iot-data'); 
  });
  
  client.on('message', (topic, message) => {
    //console.log(`Received message on topic ${topic}: ${message}`);
    let data = JSON.parse(message);
    if (validateData(data)) {
      //upload to db logic here
        insertData(data);
      
    }
    else {
      console.log("Data is invalid");
      throw new Error("Data is invalid");
    }
  });
  
  client.on('error', (err) => {
    console.error('Error:', err);
    client.end(); 
  });
  
  client.on('end', () => {
    console.log('Disconnected from MQTT broker');
    client.reconnect = true;
    }
  );
  
  





