var request = require('request'); var Promise = require('promise'); var requestPromise = function(url, urlArgs) { var promise = new Promise(function(resolve, reject) { request({ url: url, qs: urlArgs, json: false }, function(error, response, body) { if(!error && response.statusCode == 200) { resolve(JSON.parse(body)); } else { reject(error); } }); }); return promise; }; /** * weather API module. * @module kulmapaikka/owmapi */ module.exports = function(config) { 'use strict'; var apikey = config.keys.owm.apiKey; return { /** Get temperatures from Pena API (Aura) */ getTemperature: function(city, code) { var language = 'fi'; var urlArgs = { 'q': city, 'lang': language, 'APPID': apikey }; var url = 'http://api.openweathermap.org/data/2.5/weather'; var promise = requestPromise(url, urlArgs); return promise; }, getTemperatures: function(cities, code) { if(typeof code === 'undefined') { code = 'fi'; } var language = 'fi'; var idList = ''; for(var city in cities) { idList += cities[city] + ','; } idList = idList.substring(0,idList.length - 1); var urlArgs = { 'id': idList, 'lang': language, 'APPID': apikey }; var url = 'http://api.openweathermap.org/data/2.5/group'; var promise = requestPromise(url, urlArgs); return promise; } }; };