Add default implementations to WeatherProvider
This commit is contained in:
@@ -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 ) {
|
||||||
|
|||||||
@@ -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";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user