index.js
2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*
OPEN WEATHER MAP WRAPPER FOR NODEJS
Author: Kwabena Berko
Email: kwabenaberko95@gmail.com
*/
const request = require("request");
function OpenWeatherMapHelper(config){
if(!(this instanceof OpenWeatherMapHelper)){
return new OpenWeatherMapHelper(config);
}
this.config = config;
}
function sendResponse(err, data, callback){
let error = null;
let response = null;
error = err;
if(data){
if(data.statusCode != 200){
let e = JSON.parse(data.body)
error = new Error(e.message);
error.status = e.cod;
}
if(data.body){
response = JSON.parse(data.body);
}
}
callback(error, response);
}
//CURRENT WEATHER START
OpenWeatherMapHelper.prototype.getCurrentWeatherByCityName = function(cityName, callback) {
request.get(`https://api.openweathermap.org/data/2.5/weather?q=${cityName}&units=${this.config.units}&APPID=${this.config.APPID}`,
(err, data)=>{
sendResponse(err, data, callback);
})
};
OpenWeatherMapHelper.prototype.getCurrentWeatherByCityID = function(cityId, callback) {
request.get(`https://api.openweathermap.org/data/2.5/weather?id=${cityId}&APPID=${this.config.APPID}`,
(err, data)=>{
sendResponse(err, data, callback);
})
};
OpenWeatherMapHelper.prototype.getCurrentWeatherByGeoCoordinates = function(latitude, longitude, callback) {
request.get(`https://api.openweathermap.org/data/2.5/weather?lat=${parseFloat(latitude)}&lon=${parseFloat(longitude)}&APPID=${this.config.APPID}`,
(err, data)=>{
sendResponse(err, data, callback);
})
};
OpenWeatherMapHelper.prototype.getCurrentWeatherByZipCode = function(zipCode, callback) {
request.get(`https://api.openweathermap.org/data/2.5/weather?zip=${zipCode.toString()}&APPID=${this.config.APPID}`,
(err, data)=>{
sendResponse(err, data, callback);
})
};
//CURRENT WEATHER END
//THREE HOUR FORECAST START
OpenWeatherMapHelper.prototype.getThreeHourForecastByCityName = function(cityName, callback) {
request.get(`https://api.openweathermap.org/data/2.5/forecast?q=${cityName}&APPID=${this.config.APPID}`,
(err, data)=>{
sendResponse(err, data, callback);
})
};
OpenWeatherMapHelper.prototype.getThreeHourForecastByCityID = function(cityId, callback) {
request.get(`https://api.openweathermap.org/data/2.5/forecast?id=${cityId}&APPID=${this.config.APPID}`,
(err, data)=>{
sendResponse(err, data, callback);
})
};
OpenWeatherMapHelper.prototype.getThreeHourForecastByGeoCoordinates = function(latitude, longitude, callback) {
request.get(`https://api.openweathermap.org/data/2.5/forecast?lat=${parseFloat(latitude)}&lon=${parseFloat(longitude)}&APPID=${this.config.APPID}`,
(err, data)=>{
sendResponse(err, data, callback);
})
};
OpenWeatherMapHelper.prototype.getThreeHourForecastByZipCode = function(zipCode, callback) {
request.get(`https://api.openweathermap.org/data/2.5/forecast?zip=${zipCode.toString()}&APPID=${this.config.APPID}`,
(err, data)=>{
sendResponse(err, data, callback);
})
};
//THREE HOUR FORECAST END
module.exports = OpenWeatherMapHelper;