Add default implementations to WeatherProvider

This commit is contained in:
Matthew Oslan
2019-06-06 16:17:06 -04:00
parent 8368991c67
commit b57b019295
2 changed files with 10 additions and 14 deletions

View File

@@ -184,11 +184,6 @@ function checkWeatherRestriction( adjustmentValue: number, weather: WateringData
export const getWeatherData = async function( req: express.Request, res: express.Response ) { export const getWeatherData = async function( req: express.Request, res: express.Response ) {
const location: string = getParameter(req.query.loc); const location: string = getParameter(req.query.loc);
if ( !weatherProvider.getWeatherData ) {
res.send( "Error: selected WeatherProvider does not support getWeatherData" );
return;
}
let coordinates: GeoCoordinates; let coordinates: GeoCoordinates;
try { try {
coordinates = await resolveCoordinates( location ); coordinates = await resolveCoordinates( location );
@@ -263,11 +258,6 @@ export const getWateringData = async function( req: express.Request, res: expres
let timeData: TimeData = getTimeData( coordinates ); let timeData: TimeData = getTimeData( coordinates );
let wateringData: WateringData; let wateringData: WateringData;
if ( adjustmentMethod !== ADJUSTMENT_METHOD.MANUAL || checkRestrictions ) { if ( adjustmentMethod !== ADJUSTMENT_METHOD.MANUAL || checkRestrictions ) {
if ( !weatherProvider.getWateringData ) {
res.send( "Error: selected WeatherProvider does not support getWateringData" );
return;
}
try { try {
wateringData = await weatherProvider.getWateringData( coordinates ); wateringData = await weatherProvider.getWateringData( coordinates );
} catch ( err ) { } catch ( err ) {

View File

@@ -5,15 +5,21 @@ export class WeatherProvider {
* Retrieves weather data necessary for watering level calculations. * Retrieves weather data necessary for watering level calculations.
* @param coordinates The coordinates to retrieve the watering data for. * @param coordinates The coordinates to retrieve the watering data for.
* @return A Promise that will be resolved with the WateringData if it is successfully retrieved, * @return A Promise that will be resolved with the WateringData if it is successfully retrieved,
* or rejected with an error message if an error occurs while retrieving the WateringData. * or rejected with an error message if an error occurs while retrieving the WateringData or the WeatherProvider
* does not support this method.
*/ */
getWateringData?( coordinates : GeoCoordinates ): Promise< WateringData >; getWateringData( coordinates : GeoCoordinates ): Promise< WateringData > {
throw "Selected WeatherProvider does not support getWateringData";
}
/** /**
* Retrieves the current weather data for usage in the mobile app. * Retrieves the current weather data for usage in the mobile app.
* @param coordinates The coordinates to retrieve the weather for * @param coordinates The coordinates to retrieve the weather for
* @return A Promise that will be resolved with the WeatherData if it is successfully retrieved, * @return A Promise that will be resolved with the WeatherData if it is successfully retrieved,
* or rejected with an error message if an error occurs while retrieving the WeatherData. * or rejected with an error message if an error occurs while retrieving the WeatherData or the WeatherProvider does
* not support this method.
*/ */
getWeatherData?( coordinates : GeoCoordinates ): Promise< WeatherData >; getWeatherData( coordinates : GeoCoordinates ): Promise< WeatherData > {
throw "Selected WeatherProvider does not support getWeatherData";
}
} }