diff --git a/plugins/weather.js b/plugins/weather.js index 7bac10e..c816e8c 100644 --- a/plugins/weather.js +++ b/plugins/weather.js @@ -56,29 +56,30 @@ class Weather extends BasePlugin { return promise } - - getTemperatures(cities, code) { - logger.info('getting temperatures ', cities, code) - if (typeof code === 'undefined') { - code = 'fi' - } + getTemperatureById(cityId) { var language = 'fi' - var idList = '' - for (var city in cities) { - idList += cities[city] + ',' - } - idList = idList.substring(0, idList.length - 1) - var urlArgs = { - 'id': idList, + 'id': cityId, 'lang': language, 'APPID': this.apikey } - var url = 'http://api.openweathermap.org/data/2.5/group' - var promise = requestPromise(url, urlArgs).catch(e => { - logger.error('Failed to retrieve openweathermap data') - }) + var url = 'http://api.openweathermap.org/data/2.5/weather' + var promise = requestPromise(url, urlArgs) + + return promise + } + getTemperatures(cities, code) { + const allQueries = Promise.allSettled(Object.keys(cities).map(city => this.getTemperatureById(cities[city]))) + const promise = new Promise((resolve) => { + allQueries.then(responses => { + console.log('done!') + console.log(responses) + resolve({ + list: responses.filter(r => r.status === 'fulfilled').map(r => r.value) + }) + }) + }); return promise }