From 156725afa6923aa579fc9d9626a72bdb634e9e4a Mon Sep 17 00:00:00 2001 From: Sheldan <5037282+Sheldan@users.noreply.github.com> Date: Tue, 5 Sep 2023 01:44:01 +0200 Subject: [PATCH] [AB-97] adding wind speed to weather command fixing command failing non gracefully in case the location for weather was not found --- .../webservices/openeweathermap/command/OpenWeatherMap.java | 1 + .../openeweathermap/service/OpenWeatherMapServiceBean.java | 4 ++++ .../openweathermap/model/WeatherResponseModel.java | 1 + .../webservices/openweathermap/model/WeatherResult.java | 2 ++ 4 files changed, 8 insertions(+) diff --git a/abstracto-application/abstracto-modules/webservices/webservices-impl/src/main/java/dev/sheldan/abstracto/webservices/openeweathermap/command/OpenWeatherMap.java b/abstracto-application/abstracto-modules/webservices/webservices-impl/src/main/java/dev/sheldan/abstracto/webservices/openeweathermap/command/OpenWeatherMap.java index d9a6d0e6d..e23103369 100644 --- a/abstracto-application/abstracto-modules/webservices/webservices-impl/src/main/java/dev/sheldan/abstracto/webservices/openeweathermap/command/OpenWeatherMap.java +++ b/abstracto-application/abstracto-modules/webservices/webservices-impl/src/main/java/dev/sheldan/abstracto/webservices/openeweathermap/command/OpenWeatherMap.java @@ -102,6 +102,7 @@ public class OpenWeatherMap extends AbstractConditionableCommand { .rain3H(weatherResult.getRainInfo() != null ? weatherResult.getRainInfo().getRain3H() : null) .snow1H(weatherResult.getSnowInfo() != null ? weatherResult.getSnowInfo().getSnow1H() : null) .snow3H(weatherResult.getSnowInfo() != null ? weatherResult.getSnowInfo().getSnow3H() : null) + .windSpeed(weatherResult.getWind() != null ? weatherResult.getWind().getSpeed() : null) .visibility(weatherResult.getVisibility()) .locationName(chosenLocation.getName()) .countryKey(chosenLocation.getCountryKey()) diff --git a/abstracto-application/abstracto-modules/webservices/webservices-impl/src/main/java/dev/sheldan/abstracto/webservices/openeweathermap/service/OpenWeatherMapServiceBean.java b/abstracto-application/abstracto-modules/webservices/webservices-impl/src/main/java/dev/sheldan/abstracto/webservices/openeweathermap/service/OpenWeatherMapServiceBean.java index 60217ca41..23e2c1d5f 100644 --- a/abstracto-application/abstracto-modules/webservices/webservices-impl/src/main/java/dev/sheldan/abstracto/webservices/openeweathermap/service/OpenWeatherMapServiceBean.java +++ b/abstracto-application/abstracto-modules/webservices/webservices-impl/src/main/java/dev/sheldan/abstracto/webservices/openeweathermap/service/OpenWeatherMapServiceBean.java @@ -2,6 +2,7 @@ package dev.sheldan.abstracto.webservices.openeweathermap.service; import com.google.common.reflect.TypeToken; import com.google.gson.Gson; +import dev.sheldan.abstracto.webservices.openweathermap.exception.LocationNotFoundException; import dev.sheldan.abstracto.webservices.openweathermap.model.GeoCodingLocation; import dev.sheldan.abstracto.webservices.openweathermap.model.GeoCodingResult; import dev.sheldan.abstracto.webservices.openweathermap.model.WeatherResult; @@ -44,6 +45,9 @@ public class OpenWeatherMapServiceBean implements OpenWeatherMapService { .get() .build(); Response response = okHttpClient.newCall(request).execute(); + if(response.code() == 400) { + throw new LocationNotFoundException(); + } List result = gson.fromJson(response.body().string(), geoCodingType); return GeoCodingResult .builder() diff --git a/abstracto-application/abstracto-modules/webservices/webservices-int/src/main/java/dev/sheldan/abstracto/webservices/openweathermap/model/WeatherResponseModel.java b/abstracto-application/abstracto-modules/webservices/webservices-int/src/main/java/dev/sheldan/abstracto/webservices/openweathermap/model/WeatherResponseModel.java index 372c804d0..0fda204b8 100644 --- a/abstracto-application/abstracto-modules/webservices/webservices-int/src/main/java/dev/sheldan/abstracto/webservices/openweathermap/model/WeatherResponseModel.java +++ b/abstracto-application/abstracto-modules/webservices/webservices-int/src/main/java/dev/sheldan/abstracto/webservices/openweathermap/model/WeatherResponseModel.java @@ -34,4 +34,5 @@ public class WeatherResponseModel { private String countryKey; private Color embedColor; private Long locationId; + private Float windSpeed; } diff --git a/abstracto-application/abstracto-modules/webservices/webservices-int/src/main/java/dev/sheldan/abstracto/webservices/openweathermap/model/WeatherResult.java b/abstracto-application/abstracto-modules/webservices/webservices-int/src/main/java/dev/sheldan/abstracto/webservices/openweathermap/model/WeatherResult.java index 0e80f090e..a1a2df94f 100644 --- a/abstracto-application/abstracto-modules/webservices/webservices-int/src/main/java/dev/sheldan/abstracto/webservices/openweathermap/model/WeatherResult.java +++ b/abstracto-application/abstracto-modules/webservices/webservices-int/src/main/java/dev/sheldan/abstracto/webservices/openweathermap/model/WeatherResult.java @@ -21,6 +21,8 @@ public class WeatherResult { private WeatherResultRain rainInfo; @SerializedName("snow") private WeatherResultSnow snowInfo; + @SerializedName("wind") + private WeatherResultWind wind; @SerializedName("dt") private Long dayTime; @SerializedName("clouds")