package io.swagger.api; import io.swagger.model.ForecastDay; import io.swagger.model.HourCondition; import io.swagger.model.Modelforecast; import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.media.ArraySchema; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import javax.validation.constraints.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.List; import java.util.Map; @javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-06-04T09:41:03.559554872Z[GMT]") @RestController public class ForecastweatherApiController implements ForecastweatherApi { private static final Logger log = LoggerFactory.getLogger(ForecastweatherApiController.class); private final ObjectMapper objectMapper; private final HttpServletRequest request; @org.springframework.beans.factory.annotation.Autowired public ForecastweatherApiController(ObjectMapper objectMapper, HttpServletRequest request) { this.objectMapper = objectMapper; this.request = request; } public ResponseEntity forecastWeatherData( @NotNull @Parameter(in = ParameterIn.QUERY, description = "For the query value, type the city name and optionally the country code divided by comma; use ISO 3166 country codes.", required = true, schema = @Schema()) @Valid @RequestParam(value = "q", required = true) String q, @Parameter(in = ParameterIn.QUERY, description = "forcast days", required = true, schema = @Schema()) @Valid @RequestParam(value = "days", required = true) int days, @Parameter(in = ParameterIn.QUERY, description = "shows alerts", required = true, schema = @Schema()) @Valid @RequestParam(value = "alerts", required = true) String alerts, @Parameter(in = ParameterIn.QUERY, description = "filter parameter", required = false, schema = @Schema()) @Valid @RequestParam(value = "filter", required = false) String filter) { try { String datafree = "{}"; RestTemplate restTemplate = new RestTemplate(); ApiService apiService = new ApiService(restTemplate); String data = apiService.getDataFromFirstApi( "https://api.weatherapi.com/v1/forecast.json?key=1244099aeaee4b179e6111803241304&q=" + q + "&days=" + days + "&aqi=yes&alerts=" + alerts); ResponseEntity response = new ResponseEntity(objectMapper.readValue( data, Modelforecast.class), HttpStatus.ACCEPTED); ResponseEntity response2 = new ResponseEntity(objectMapper.readValue( datafree, Modelforecast.class), HttpStatus.ACCEPTED); String[] filterlist = filter.split(","); for (String filterindex : filterlist) { switch (filterindex) { case "last_updated_epoch": response2.getBody().getCurrent() .setLastUpdatedEpoch(response.getBody().getCurrent().getLastUpdatedEpoch()); break; case "last_updated": response2.getBody().getCurrent() .setLastUpdated(response.getBody().getCurrent().getLastUpdated()); break; case "temp_c": response2.getBody().getCurrent().setTempC(response.getBody().getCurrent().getTempC()); break; case "temp_f": response2.getBody().getCurrent().setTempF(response.getBody().getCurrent().getTempF()); break; case "id_day": response2.getBody().getCurrent().setIdDay(response.getBody().getCurrent().getIdDay()); break; case "condition": response2.getBody().getCurrent().setCondition(response.getBody().getCurrent().getCondition()); break; case "wind_mph": response2.getBody().getCurrent().setWindMph(response.getBody().getCurrent().getWindMph()); break; case "wind_kph": response2.getBody().getCurrent().setWindKph(response.getBody().getCurrent().getWindKph()); break; case "wind_degree": response2.getBody().getCurrent().setWindDegree(response.getBody().getCurrent().getWindDegree()); break; case "wind_dir": response2.getBody().getCurrent().setWindDir(response.getBody().getCurrent().getWindDir()); break; case "pressure_mb": response2.getBody().getCurrent().setPressureMb(response.getBody().getCurrent().getPressureMb()); break; case "pressure_in": response2.getBody().getCurrent().setPressureIn(response.getBody().getCurrent().getPressureIn()); break; case "precip_mm": response2.getBody().getCurrent().setPrecipMm(response.getBody().getCurrent().getPrecipMm()); break; case "precip_in": response2.getBody().getCurrent().setPrecipIn(response.getBody().getCurrent().getPrecipIn()); break; case "humidity": response2.getBody().getCurrent().setHumidity(response.getBody().getCurrent().getHumidity()); break; case "cloud": response2.getBody().getCurrent().setCloud(response.getBody().getCurrent().getCloud()); break; case "feelslike_c": response2.getBody().getCurrent().setFeelslikeC(response.getBody().getCurrent().getFeelslikeC()); break; case "feelslike_f": response2.getBody().getCurrent().setFeelslikeF(response.getBody().getCurrent().getFeelslikeF()); break; case "windchill_c": response2.getBody().getCurrent().setWindchillC(response.getBody().getCurrent().getWindchillC()); break; case "windchill_f": response2.getBody().getCurrent().setWindchillF(response.getBody().getCurrent().getWindchillF()); break; case "heatindex_c": response2.getBody().getCurrent().setHeatindexC(response.getBody().getCurrent().getHeatindexC()); break; case "heatindex_f": response2.getBody().getCurrent().setHeatindexF(response.getBody().getCurrent().getHeatindexF()); break; case "dewpoint_c": response2.getBody().getCurrent().setDewpointC(response.getBody().getCurrent().getDewpointC()); break; case "dewpoint_f": response2.getBody().getCurrent().setDewpointF(response.getBody().getCurrent().getDewpointF()); break; case "vis_km": response2.getBody().getCurrent().setVisKm(response.getBody().getCurrent().getVisKm()); break; case "vis_miles": response2.getBody().getCurrent().setVisMiles(response.getBody().getCurrent().getVisMiles()); break; case "uv": response2.getBody().getCurrent().setUv(response.getBody().getCurrent().getUv()); break; case "gust_mph": response2.getBody().getCurrent().setGustMph(response.getBody().getCurrent().getGustMph()); break; case "gust_kph": response2.getBody().getCurrent().setGustKph(response.getBody().getCurrent().getGustKph()); break; case "air_quality": response2.getBody().getCurrent().setAirQuality(response.getBody().getCurrent().getAirQuality()); break; case "name": response2.getBody().getLocation().setName(response.getBody().getLocation().getName()); break; case "region": response2.getBody().getLocation().setRegion(response.getBody().getLocation().getRegion()); break; case "country": response2.getBody().getLocation().setCountry(response.getBody().getLocation().getCountry()); break; case "lon": response2.getBody().getLocation().setLon(response.getBody().getLocation().getLon()); break; case "lat": response2.getBody().getLocation().setLat(response.getBody().getLocation().getLat()); break; case "tz_id": response2.getBody().getLocation().setTzId(response.getBody().getLocation().getTzId()); break; case "localtime_epoch": response2.getBody().getLocation() .setLocaltimeEpoch(response.getBody().getLocation().getLocaltimeEpoch()); break; case "localtime": response2.getBody().getLocation().setLocaltime(response.getBody().getLocation().getLocaltime()); break; case "co": response2.getBody().getCurrent().getAirQuality() .setCo(response.getBody().getCurrent().getAirQuality().getCo()); break; case "no2": response2.getBody().getCurrent().getAirQuality() .setNo2(response.getBody().getCurrent().getAirQuality().getNo2()); break; case "o3": response2.getBody().getCurrent().getAirQuality() .setO3(response.getBody().getCurrent().getAirQuality().getO3()); break; case "so2": response2.getBody().getCurrent().getAirQuality() .setSo2(response.getBody().getCurrent().getAirQuality().getSo2()); break; case "pm2_5": response2.getBody().getCurrent().getAirQuality() .setPm25(response.getBody().getCurrent().getAirQuality().getPm25()); break; case "pm10": response2.getBody().getCurrent().getAirQuality() .setPm10(response.getBody().getCurrent().getAirQuality().getPm10()); break; case "us-epa-index": response2.getBody().getCurrent().getAirQuality() .setUsEpaIndex(response.getBody().getCurrent().getAirQuality().getUsEpaIndex()); break; case "gb-defra-index": response2.getBody().getCurrent().getAirQuality() .setGbDefraIndex(response.getBody().getCurrent().getAirQuality().getGbDefraIndex()); break; case "text": response2.getBody().getCurrent().getCondition() .setText(response.getBody().getCurrent().getCondition().getText()); break; case "icon": response2.getBody().getCurrent().getCondition() .setIcon(response.getBody().getCurrent().getCondition().getIcon()); break; case "code": response2.getBody().getCurrent().getCondition() .setCode(response.getBody().getCurrent().getCondition().getCode()); break; // Forecast case "date": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .setDate(response.getBody().getForecast().getForecastday().get(i).getDate()); } break; case "date_epoch": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .setDateEpoch( response.getBody().getForecast().getForecastday().get(i).getDateEpoch()); } break; case "maxtemp_c": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setMaxtempC( response.getBody().getForecast().getForecastday().get(i).getDay() .getMaxtempC()); } break; case "maxtemp_f": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setMaxtempF( response.getBody().getForecast().getForecastday().get(i).getDay() .getMaxtempF()); } break; case "mintemp_c": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setMintempC( response.getBody().getForecast().getForecastday().get(i).getDay() .getMintempC()); } break; case "mintemp_f": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setMintempF( response.getBody().getForecast().getForecastday().get(i).getDay() .getMintempF()); } break; case "avgtemp_c": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setAvgtempC( response.getBody().getForecast().getForecastday().get(i).getDay() .getAvgtempC()); } break; case "avgtemp_f": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setAvgtempF( response.getBody().getForecast().getForecastday().get(i).getDay() .getAvgtempF()); } break; case "maxwind_mph": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setMaxwindMph( response.getBody().getForecast().getForecastday().get(i).getDay() .getMaxwindMph()); } break; case "maxwind_kph": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setMaxwindKph( response.getBody().getForecast().getForecastday().get(i).getDay() .getMaxwindKph()); } break; case "totalprecip_mm": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setTotalprecipMm( response.getBody().getForecast().getForecastday().get(i).getDay() .getTotalprecipMm()); } break; case "totalprecip_in": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setTotalprecipIn( response.getBody().getForecast().getForecastday().get(i).getDay() .getTotalprecipIn()); } break; case "avgvis_km": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setAvgvisKm( response.getBody().getForecast().getForecastday().get(i).getDay() .getAvgvisKm()); } break; case "avgvis_miles": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setAvgvisMiles( response.getBody().getForecast().getForecastday().get(i).getDay() .getAvgvisMiles()); } break; case "avghumidity": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setAvghumidity( response.getBody().getForecast().getForecastday().get(i).getDay() .getAvghumidity()); } break; case "daily_will_it_rain": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setDailyWillItRain( response.getBody().getForecast().getForecastday().get(i).getDay() .getDailyWillItRain()); } break; case "daily_chance_of_rain": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setDailyChanceOfRain( response.getBody().getForecast().getForecastday().get(i).getDay() .getDailyChanceOfRain()); } break; case "daily_will_it_snow": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setDailyWillItSnow( response.getBody().getForecast().getForecastday().get(i).getDay() .getDailyWillItSnow()); } break; case "daily_chance_of_snow": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setDailyChanceOfSnow( response.getBody().getForecast().getForecastday().get(i).getDay() .getDailyChanceOfSnow()); } break; case "uv_day": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getDay().setUv_day( response.getBody().getForecast().getForecastday().get(i).getDay() .getUv_day()); } break; // astro case "sunrise": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getAstro().setSunrise( response.getBody().getForecast().getForecastday().get(i).getAstro() .getSunrise()); } break; case "sunset": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getAstro().setSunset( response.getBody().getForecast().getForecastday().get(i).getAstro() .getSunset()); } break; case "moonrise": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getAstro().setMoonrise( response.getBody().getForecast().getForecastday().get(i).getAstro() .getMoonrise()); } break; case "moonset": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getAstro().setMoonset( response.getBody().getForecast().getForecastday().get(i).getAstro() .getMoonset()); } break; case "moon_phase": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getAstro().setMoonPhase( response.getBody().getForecast().getForecastday().get(i).getAstro() .getMoonPhase()); } break; case "moon_illumination": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } response2.getBody().getForecast().getForecastday().get(i) .getAstro().setMoonIllumination( response.getBody().getForecast().getForecastday().get(i).getAstro() .getMoonIllumination()); } break; // hourly case "hourly_time_epoch": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_TimeEpoch( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_TimeEpoch()); } } break; case "hourly_time": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_Time( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_Time()); } } break; case "hourly_temp_c": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_TempC( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_TempC()); } } break; case "hourly_temp_f": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_TempF( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_TempF()); } } break; case "hourly_is_day": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_IsDay( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_IsDay()); } } break; case "hourly_wind_mph": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_WindMph( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_WindMph()); } } break; case "hourly_wind_kph": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_WindKph( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_WindKph()); } } break; case "hourly_wind_degree": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_WindDegree( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_WindDegree()); } } break; case "hourly_wind_dir": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_WindDir( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_WindDir()); } } break; case "hourly_pressure_mb": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_PressureMb( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_PressureMb()); } } break; case "hourly_pressure_in": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_PressureIn( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_PressureIn()); } } break; case "hourly_precip_mm": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_PrecipMm( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_PrecipMm()); } } break; case "hourly_precip_in": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_PrecipIn( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_PrecipIn()); } } break; case "hourly_humidity": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_Humidity( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_Humidity()); } } break; case "hourly_cloud": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_Cloud( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_Cloud()); } } break; case "hourly_feelslike_c": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_FeelslikeC( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_FeelslikeC()); } } break; case "hourly_feelslike_f": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_FeelslikeF( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_FeelslikeF()); } } break; case "hourly_windchill_c": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_WindchillC( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_WindchillC()); } } break; case "hourly_windchill_f": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_WindchillF( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_WindchillF()); } } break; case "hourly_heatindex_c": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_HeatindexC( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_HeatindexC()); } } break; case "hourly_heatindex_f": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_HeatindexF( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_HeatindexF()); } } break; case "hourly_dewpoint_c": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_DewpointC( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_DewpointC()); } } break; case "hourly_dewpoint_f": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_DewpointF( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_DewpointF()); } } break; case "hourly_will_it_rain": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_WillItRain( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_WillItRain()); } } break; case "hourly_chance_of_rain": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_ChanceOfRain( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_ChanceOfRain()); } } break; case "hourly_will_it_snow": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_WillItSnow( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_WillItSnow()); } } break; case "hourly_chance_of_snow": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_ChanceOfSnow( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_ChanceOfSnow()); } } break; case "hourly_vis_km": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_VisKm( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_VisKm()); } } break; case "hourly_vis_miles": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_VisMiles( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_VisMiles()); } } break; case "hourly_gust_mph": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_GustMph( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_GustMph()); } } break; case "hourly_gust_kph": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_GustKph( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_GustKph()); } } break; case "hourly_uv": for (int i = 0; i < days; i++) { try { response2.getBody().getForecast().getForecastday().get(i); } catch (Exception e) { response2.getBody().getForecast().addForecastdayItem(new ForecastDay()); } for (int j = 0; j < 24; j++) { try { response2.getBody().getForecast().getForecastday().get(i).getHour().get(j); } catch (Exception e) { response2.getBody().getForecast().getForecastday().get(i) .addHourItem(new HourCondition()); } response2.getBody().getForecast().getForecastday().get(i) .getHour().get(j).setHourly_Uv( response.getBody().getForecast().getForecastday().get(i).getHour() .get(j) .getHourly_Uv()); } } break; default: break; } } return response2; } catch (IOException e) { log.error("Couldn't serialize response for content type application/json", e); return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); } } }