const http = require('http')
const globalVars = require('../libs/globalVars')
const led = require('../libs/led')
const common = require('../libs/common')
const lcd = require('../libs/lcd')

const city = "Basingstoke"
const appid = "ba24c6018ddd72041749018d0c1b1ef8"

module.exports = {

    getStatus: () => {
        var rest_options = {
            host: 'api.openweathermap.org',
            port: 80,
            path: '/data/2.5/weather?q=' + city + '&appid=' + appid + '&units=metric',
            method: 'GET'
        };
        let t = new Date().toUTCString()
        console.log(t + ' weather request')
        var request = http.request(rest_options, function (response) {
            var content = "";

            // Handle data chunks
            response.on('data', function (chunk) {
                content += chunk;
            });

            // Once we're done streaming the response, parse it as json.
            response.on('end', async function () {
                var data = JSON.parse(content);
                let city = data.name
                let weatherDescription = data.weather[0].description
                let currentTemp = Math.floor(data.main.temp)
                let highTemp = Math.floor(data.main.temp_max)
                let lowTemp = Math.floor(data.main.temp_min)

                await lcd.weather(city, weatherDescription, currentTemp, highTemp, lowTemp)

            });
        })
        // Report errors
        request.on('error', function (error) {
            led.set('green')
            lcd.heatingStatus('Error No Data')
            globalVars.heatingOn = 'error'
        });
        request.end();
    }
}