From cd64edc8e42f0782d71bdc991e90e7517a7e5f72 Mon Sep 17 00:00:00 2001 From: hugcubi <hugo.cubino@estudiantes.uva.es> Date: Tue, 24 Dec 2024 08:53:52 +0100 Subject: [PATCH] Fixed api response --- .../java/com/uva/monolith/api/ManagerAPI.java | 7 ++++--- .../hotels/controllers/HotelController.java | 18 ++++++++++++------ 2 files changed, 16 insertions(+), 9 deletions(-) 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 3dc3325..fda9694 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 75c9aed..de29352 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 -- GitLab