started working on OpenMeteo
parent
4ddc0ba163
commit
1f8fcb3273
@ -0,0 +1,71 @@
|
||||
const getDailyData = async () => {
|
||||
const response = await fetch(
|
||||
'https://api.open-meteo.com/v1/forecast?latitude=43.7085&longitude=10.4036&hourly=temperature_2m,relative_humidity_2m,apparent_temperature,precipitation,weather_code&timezone=Europe%2FBerlin&forecast_days=3',
|
||||
)
|
||||
const body = await response.json()
|
||||
|
||||
let today = {}
|
||||
const startTime = new Date().getHours() + 1
|
||||
for (let i = startTime; i <= 23; i++) {
|
||||
today[i] = {
|
||||
temperature: body.hourly.temperature_2m[i],
|
||||
precipitation: body.hourly.precipitation[i],
|
||||
apparentTemperature: body.hourly.apparent_temperature[i],
|
||||
weatherCode: body.hourly.weather_code[i],
|
||||
}
|
||||
}
|
||||
|
||||
let tomorrow = {}
|
||||
for (let i = 0; i <= 23; i++) {
|
||||
tomorrow[i] = {
|
||||
temperature: body.hourly.temperature_2m[24 + i],
|
||||
precipitation: body.hourly.precipitation[24 + i],
|
||||
apparentTemperature: body.hourly.apparent_temperature[24 + i],
|
||||
weatherCode: body.hourly.weather_code[24 + i],
|
||||
}
|
||||
}
|
||||
|
||||
let dayAfterTomorrow = {}
|
||||
for (let i = 0; i <= 23; i++) {
|
||||
dayAfterTomorrow[i] = {
|
||||
temperature: body.hourly.temperature_2m[48 + i],
|
||||
precipitation: body.hourly.precipitation[48 + i],
|
||||
apparentTemperature: body.hourly.apparent_temperature[48 + i],
|
||||
weatherCode: body.hourly.weather_code[48 + i],
|
||||
}
|
||||
}
|
||||
return {
|
||||
today,
|
||||
tomorrow,
|
||||
dayAfterTomorrow,
|
||||
}
|
||||
}
|
||||
|
||||
const getWeekData = async () => {
|
||||
const response = await fetch(
|
||||
'https://api.open-meteo.com/v1/forecast?latitude=43.7085&longitude=10.4036&daily=weather_code,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,precipitation_sum&timezone=Europe%2FBerlin',
|
||||
)
|
||||
const body = await response.json()
|
||||
|
||||
let week = {}
|
||||
for (let i = 0; i < 6; i++) {
|
||||
week[i] = {
|
||||
minimumTemperature: body.daily.temperature_2m_min[i],
|
||||
maximumTemperature: body.daily.temperature_2m_max[i],
|
||||
minimumApparentTemperature: body.daily.apparent_temperature_min[i],
|
||||
maximumApparentTemperature: body.daily.apparent_temperature_max[i],
|
||||
precipitationSum: body.daily.precipitation_sum[i],
|
||||
weatherCode: body.daily.weather_code[i],
|
||||
}
|
||||
}
|
||||
|
||||
return week
|
||||
}
|
||||
export default async () => {
|
||||
const [daily, week] = await Promise.all([getDailyData(), getWeekData()])
|
||||
|
||||
return {
|
||||
...daily,
|
||||
week,
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue