diff --git a/java/services/hotels/src/main/java/com/uva/monolith/api/ManagerAPI.java b/java/services/hotels/src/main/java/com/uva/monolith/api/ManagerAPI.java index 3dc33257d9ce9df4a2651bea2a6c3dcfbba7e8fa..fda96949c48eb0cd159fd181efe6c845eff08767 100644 --- a/java/services/hotels/src/main/java/com/uva/monolith/api/ManagerAPI.java +++ b/java/services/hotels/src/main/java/com/uva/monolith/api/ManagerAPI.java @@ -1,7 +1,5 @@ package com.uva.monolith.api; -import java.util.Map; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpStatus; @@ -9,6 +7,8 @@ import org.springframework.stereotype.Component; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.RestTemplate; +import com.fasterxml.jackson.databind.JsonNode; + @Component public class ManagerAPI { @@ -21,8 +21,9 @@ public class ManagerAPI { public Boolean existsManagerById(int id) { try { String url = MANAGERS_API_URL + "/{id}"; - return restTemplate.getForObject(url, Map.class, id).containsKey("id"); + return restTemplate.getForEntity(url, JsonNode.class, id).getStatusCode() == HttpStatus.OK; } catch (HttpClientErrorException e) { + e.printStackTrace(System.err); if (e.getStatusCode() != HttpStatus.NOT_FOUND) throw e; return false; diff --git a/java/services/hotels/src/main/java/com/uva/monolith/services/hotels/controllers/HotelController.java b/java/services/hotels/src/main/java/com/uva/monolith/services/hotels/controllers/HotelController.java index 75c9aed4195a05a969db8f6f85d10cc328b606ae..de293524b54a865ab0d58a9877936cd8aa4145d0 100644 --- a/java/services/hotels/src/main/java/com/uva/monolith/services/hotels/controllers/HotelController.java +++ b/java/services/hotels/src/main/java/com/uva/monolith/services/hotels/controllers/HotelController.java @@ -62,13 +62,19 @@ public class HotelController { // AƱadir un hotel con sus habitaciones @PostMapping public ResponseEntity<?> addHotel(@RequestBody Hotel hotel) { - boolean exist = managerAPI.existsManagerById(hotel.getManagerId()); - if (!exist) { - return new ResponseEntity<>( - "No existe el manager con id " + String.valueOf(hotel.getManagerId()), HttpStatus.BAD_REQUEST); + try { + + boolean exist = managerAPI.existsManagerById(hotel.getManagerId()); + String message = "No existe el manager con id " + String.valueOf(hotel.getManagerId()); + if (!exist) { + return new ResponseEntity<>(message, HttpStatus.BAD_REQUEST); + } + Hotel savedHotel = hotelRepository.save(hotel); + return new ResponseEntity<>(savedHotel, HttpStatus.CREATED); + } catch (Exception e) { + e.printStackTrace(System.err); + throw e; } - Hotel savedHotel = hotelRepository.save(hotel); - return new ResponseEntity<>(savedHotel, HttpStatus.CREATED); } // Obtener un hotel por su ID