68 lines
1.4 KiB
JavaScript
68 lines
1.4 KiB
JavaScript
|
|
||
|
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;
|
||
|
};
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Pena API module.
|
||
|
* @module kulmapaikka/owmapi
|
||
|
*/
|
||
|
module.exports = function(config) {
|
||
|
'use strict';
|
||
|
return {
|
||
|
/** Get temperatures from Pena API (Aura) */
|
||
|
getTemperature: function(city, code) {
|
||
|
var language = 'fi';
|
||
|
|
||
|
var urlArgs = {
|
||
|
'q': city,
|
||
|
'lang': language,
|
||
|
'APPID': '4e3b7bbd3da07052c4fed6d342e48707'
|
||
|
};
|
||
|
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': '4e3b7bbd3da07052c4fed6d342e48707'
|
||
|
};
|
||
|
var url = 'http://api.openweathermap.org/data/2.5/group';
|
||
|
var promise = requestPromise(url, urlArgs);
|
||
|
|
||
|
return promise;
|
||
|
}
|
||
|
};
|
||
|
};
|