temp-forecast
Get the temperature forecast for the next 12 hours.
Setup:
npm install codeblox request moment-timezone
codeblox.json
{
"name": "temp-forecast",
"version": "1.0.0",
"description": "Get temperature forecast as a chart",
"keywords": ["weather", "temperature", "forecast", "chart"],
"input": "location",
"output": "chart"
}
.codebloxenv
WEATHER_API_KEY=YOUR_KEY_HERE
codeblox.js
const request = require('request')
const moment = require('moment-timezone')
const codeblox = require('codeblox')
module.exports.default = codeblox((input, options, callback) => {
request.get(`https://api.darksky.net/forecast/${process.env.WEATHER_API_KEY}/${input[0]},${input[1]}`, (err, res, body) => {
const weather = JSON.parse(body)
let temps = weather.hourly.data.map(d => ({ time: d.time, temp: d.temperature }))
temps.splice(12)
const result = temps.reduce((acc, curr) => {
const time = moment(curr.time * 1000).tz(weather.timezone).format("hA")
acc[time] = curr.temp
return acc
}, {})
callback(null, result)
})
})