package io.swagger.api; import io.swagger.model.Search; import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.media.Schema; 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.RequestParam; import javax.validation.Valid; import javax.validation.constraints.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.List; @javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-06-09T14:41:38.246173275Z[GMT]") @RestController public class SearchApiController implements SearchApi { private static final Logger log = LoggerFactory.getLogger(SearchApiController.class); private final ObjectMapper objectMapper; @SuppressWarnings("unused") private final HttpServletRequest request; @org.springframework.beans.factory.annotation.Autowired public SearchApiController(ObjectMapper objectMapper, HttpServletRequest request) { this.objectMapper = objectMapper; this.request = request; } public ResponseEntity> searchGet( @NotNull @Parameter(in = ParameterIn.QUERY, description = "Name of the city to filter locations by", required = true, schema = @Schema()) @Valid @RequestParam(value = "city", required = true) String city) { try { RestTemplate restTemplate = new RestTemplate(); ApiService apiService = new ApiService(restTemplate); String data = apiService.getDataFromFirstApi( "http://api.weatherapi.com/v1/search.json?key=1244099aeaee4b179e6111803241304&q=" + city); @SuppressWarnings("unchecked") ResponseEntity> response = new ResponseEntity>(objectMapper.readValue( data, List.class), HttpStatus.ACCEPTED); return response; } catch (IOException e) { log.error("Couldn't serialize response for content type application/json", e); return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); } } }