added OpenWeatherMap One Call API function to default Weather module, added wDataHourly type

This commit is contained in:
Bryan Zhu
2020-06-30 02:40:41 -04:00
parent fdd389d6b7
commit 4a162543f6
4 changed files with 263 additions and 4 deletions

View File

@@ -16,6 +16,7 @@ var WeatherProvider = Class.extend({
// Try to not access them directly.
currentWeatherObject: null,
weatherForecastArray: null,
weatherDataObject: null,
fetchedLocationName: null,
// The following properties will be set automatically.
@@ -56,6 +57,12 @@ var WeatherProvider = Class.extend({
Log.warn(`Weather provider: ${this.providerName} does not subclass the fetchWeatherForecast method.`);
},
// This method should start the API request to fetch the weather forecast.
// This method should definitely be overwritten in the provider.
fetchWeatherData: function () {
Log.warn(`Weather provider: ${this.providerName} does not subclass the fetchWeatherData method.`);
},
// This returns a WeatherDay object for the current weather.
currentWeather: function () {
return this.currentWeatherObject;
@@ -66,6 +73,11 @@ var WeatherProvider = Class.extend({
return this.weatherForecastArray;
},
// This returns an object containing WeatherDay object(s) depending on the type of call.
weatherData: function () {
return this.weatherDataObject;
},
// This returns the name of the fetched location or an empty string.
fetchedLocation: function () {
return this.fetchedLocationName || "";
@@ -83,6 +95,12 @@ var WeatherProvider = Class.extend({
this.weatherForecastArray = weatherForecastArray;
},
// Set the weatherDataObject and notify the delegate that new information is available.
setWeatherData: function (weatherDataObject) {
// We should check here if we are passing a WeatherDay
this.weatherDataObject = weatherDataObject;
},
// Set the fetched location name.
setFetchedLocation: function (name) {
this.fetchedLocationName = name;