-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathopenWeather.js
63 lines (51 loc) · 1.72 KB
/
openWeather.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
const envWeather = process.env.OPEN_WEATHER_API_KEY
const axios = require('axios');
const DB = require("../database")
let dataToInsert = {
city: "",
country: "",
icon: "",
max_temp: 0,
lat: 0,
lon: 0,
weatherDescription: "",
}
function getWeatherData() {
DB.pool.query("SELECT * FROM travelData" , async (error, results, fields) => {
if (error) {
console.log(error);
res.status(500).send({ ok: false, error: error });
} else {
res.send({ ok: true, result: results });
console.log(numOfTrips)
numOfTrips = results[0].id
for (let i = 0; i < results.length; i++) {
let url = `https://api.openweathermap.org/data/2.5/weather?q=${results[i].city}&units=metric&appid=${envWeather}`
result = await axios.get(url);
dataToInsert = {
city: result.data.name,
country: result.data.sys.country,
icon: result.data.weather[0].icon,
max_temp: result.data.main.temp_max,
lat: result.data.coord.lat,
lon: result.data.coord.lon,
weatherDescription: result.data.weather[0].description,
}
console.log(results[i].id)
DB.pool.query(
"UPDATE travelData SET ? WHERE id=?",
[dataToInsert, results[i].id],
(error, results, fields) => {
if (error) console.log(error);
console.log(results);
}
);
};
console.log(dataToInsert)
res.send({ ok: true, result: results });
}
});
}
exports.module = {
getWeatherData
}