123456789101112131415161718192021222324252627282930313233343536373839404142 |
- const Config = require('../models/Config');
- const Weather = require('../models/Weather');
- const axios = require('axios');
- const getExternalWeather = async () => {
- // Get API key from database
- let secret = await Config.findOne({
- where: { key: 'WEATHER_API_KEY' }
- });
- if (!secret) {
- console.log('API key was not found');
- return;
- }
- secret = secret.value;
- // Fetch data from external API
- try {
- const res = await axios.get(`http://api.weatherapi.com/v1/current.json?key=${secret}&q=52.229676,21.012229`);
- // For dev
- // console.log(res.data);
- // Save weather data
- const cursor = res.data.current;
- await Weather.create({
- externalLastUpdate: cursor.last_updated,
- tempC: cursor.temp_c,
- tempF: cursor.temp_f,
- isDay: cursor.is_day,
- conditionText: cursor.condition.text,
- conditionCode: cursor.condition.code
- });
- } catch (err) {
- console.log(err);
- console.log('External API request failed');
- return;
- }
- }
- module.exports = getExternalWeather;
|