diff --git a/diagramas/practica.asta b/diagramas/practica.asta index 78f91509c528f8268b56577e3bdff74384871e02..d430c8110e9d205c81abe47b38c78a67be515125 100644 Binary files a/diagramas/practica.asta and b/diagramas/practica.asta differ diff --git a/java/services/bookings/src/main/java/com/uva/api/bookings/services/BookingService.java b/java/services/bookings/src/main/java/com/uva/api/bookings/services/BookingService.java index b8943243cccc85e4c41ac82030fa102b9f666ba2..7a3f8a478486a0e67cd7395c21536df85a0e1a80 100644 --- a/java/services/bookings/src/main/java/com/uva/api/bookings/services/BookingService.java +++ b/java/services/bookings/src/main/java/com/uva/api/bookings/services/BookingService.java @@ -49,7 +49,7 @@ public class BookingService { List<Booking> bookings = null; if (start != null && end != null) { - if (!start.isBefore(end)) + if (start.isAfter(end)) throw new InvalidDateRangeException("Start can't be before than end"); bookings = bookingRepository.findAllInDateRange(start, end); diff --git a/java/services/hotels/src/main/java/com/uva/api/hotels/services/HotelService.java b/java/services/hotels/src/main/java/com/uva/api/hotels/services/HotelService.java index d6851c0866e4891701d2ca9a0432736a4cfaa664..2e8ada3d9c661fce46aee63df267ac48ec2bd6ed 100644 --- a/java/services/hotels/src/main/java/com/uva/api/hotels/services/HotelService.java +++ b/java/services/hotels/src/main/java/com/uva/api/hotels/services/HotelService.java @@ -33,7 +33,7 @@ public class HotelService { ? hotelRepository.findAllByManagerId(managerId) : hotelRepository.findAll(); if (start != null && end != null) { - if (!start.isBefore(end)) + if (start.isAfter(end)) throw new InvalidDateRangeException("La fecha de inicio debe ser anterior a la fecha de fin"); Set<Integer> notAvailableRoomsId = bookingAPI.getNotAvailableRooms(start, end); diff --git a/java/services/users/src/main/java/com/uva/api/users/filter/JwtAuthenticationFilter.java b/java/services/users/src/main/java/com/uva/api/users/config/JwtAuthenticationFilter.java similarity index 99% rename from java/services/users/src/main/java/com/uva/api/users/filter/JwtAuthenticationFilter.java rename to java/services/users/src/main/java/com/uva/api/users/config/JwtAuthenticationFilter.java index 1a297c7c09dca05e5ec1fbdc233ba3a7bdc524ac..af31ba3b5d07750f687004720a873c348f81a9d1 100644 --- a/java/services/users/src/main/java/com/uva/api/users/filter/JwtAuthenticationFilter.java +++ b/java/services/users/src/main/java/com/uva/api/users/config/JwtAuthenticationFilter.java @@ -1,4 +1,4 @@ -package com.uva.api.users.filter; +package com.uva.api.users.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; diff --git a/java/services/users/src/main/java/com/uva/api/users/config/SecurityConfig.java b/java/services/users/src/main/java/com/uva/api/users/config/SecurityConfig.java index 6428cf4979d1718179f3d8de99ffda5b2ee37f09..356fa79a2370e580a8808e725732614ca376d76f 100644 --- a/java/services/users/src/main/java/com/uva/api/users/config/SecurityConfig.java +++ b/java/services/users/src/main/java/com/uva/api/users/config/SecurityConfig.java @@ -9,7 +9,6 @@ import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; import com.uva.api.users.api.TokenAPI; -import com.uva.api.users.filter.JwtAuthenticationFilter; import com.uva.api.users.models.UserRol; import com.uva.api.users.services.TokenService; diff --git a/java/services/users/src/main/java/com/uva/api/users/controllers/ClientController.java b/java/services/users/src/main/java/com/uva/api/users/controllers/ClientController.java index afcb4b7f30f5b49fb3b27145944d3a14623f8f42..e2b92bac5560947f245eda30fc6603e425d84be0 100644 --- a/java/services/users/src/main/java/com/uva/api/users/controllers/ClientController.java +++ b/java/services/users/src/main/java/com/uva/api/users/controllers/ClientController.java @@ -26,7 +26,6 @@ public class ClientController { @Autowired private ClientService clientService; - // Clients @GetMapping public ResponseEntity<?> getAllClients() { return clientService.findAll(); @@ -41,29 +40,19 @@ public class ClientController { public ResponseEntity<?> updateClientState(@PathVariable int id, @RequestBody Map<String, String> json) { String strStatus = json.get("status"); - if (strStatus == null) { - return new ResponseEntity<String>("Missing required fields", HttpStatus.BAD_REQUEST); - } + if (strStatus == null) + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing required fields"); + try { ClientStatus clientStatus = ClientStatus.valueOf(strStatus); - return ResponseEntity.ok(clientService.updateClientStatus(id, clientStatus)); + return clientService.updateClientStatus(id, clientStatus); } catch (IllegalArgumentException e) { - return new ResponseEntity<String>("Unknown Client state", HttpStatus.BAD_REQUEST); - } catch (HttpClientErrorException e) { - if (e.getStatusCode() == HttpStatus.NOT_FOUND) - return new ResponseEntity<String>(HttpStatus.NOT_FOUND); - throw e; + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Unknown Client state"); } } @DeleteMapping("/{id}") public ResponseEntity<?> deleteClient(@PathVariable Integer id) { - try { - return ResponseEntity.ok(clientService.deleteById(id)); - } catch (HttpClientErrorException e) { - if (e.getStatusCode() == HttpStatus.NOT_FOUND) - return new ResponseEntity<String>(HttpStatus.NOT_FOUND); - throw e; - } + return clientService.deleteById(id); } } diff --git a/java/services/users/src/main/java/com/uva/api/users/controllers/ManagerController.java b/java/services/users/src/main/java/com/uva/api/users/controllers/ManagerController.java index 31cdca4afbab1739d5dfaeed9d16a18a9491e36e..e2763673696656ecf7b255270f2b98502c85effe 100644 --- a/java/services/users/src/main/java/com/uva/api/users/controllers/ManagerController.java +++ b/java/services/users/src/main/java/com/uva/api/users/controllers/ManagerController.java @@ -1,8 +1,6 @@ package com.uva.api.users.controllers; -import java.util.List; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.DeleteMapping; @@ -10,9 +8,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.client.HttpClientErrorException; -import com.uva.api.users.models.Manager; import com.uva.api.users.services.ManagerService; @RestController @@ -24,25 +20,18 @@ public class ManagerController { private ManagerService managerService; @GetMapping - public ResponseEntity<List<Manager>> getAllHotelManagers() { - List<Manager> users = managerService.findAll(); - return ResponseEntity.ok(users); + public ResponseEntity<?> getAllHotelManagers() { + return managerService.findAll(); } @GetMapping("/{id}") - public ResponseEntity<Manager> getHotelManagerById(@PathVariable Integer id) { - return ResponseEntity.ok(managerService.findById(id)); + public ResponseEntity<?> getHotelManagerById(@PathVariable Integer id) { + return managerService.findById(id); } @DeleteMapping("/{id}") public ResponseEntity<?> deleteHotelManager(@PathVariable Integer id) { - try { - return ResponseEntity.ok(managerService.deleteById(id)); - } catch (HttpClientErrorException e) { - if (e.getStatusCode() == HttpStatus.NOT_FOUND) - return new ResponseEntity<String>(HttpStatus.NOT_FOUND); - throw e; - } + return managerService.deleteById(id); } } diff --git a/java/services/users/src/main/java/com/uva/api/users/controllers/UserController.java b/java/services/users/src/main/java/com/uva/api/users/controllers/UserController.java index 811785a89b0c668f7c0e50b677b39c579834a20c..bfa14ccc74cb5f694aa983b232c453ef23fe69ac 100644 --- a/java/services/users/src/main/java/com/uva/api/users/controllers/UserController.java +++ b/java/services/users/src/main/java/com/uva/api/users/controllers/UserController.java @@ -15,6 +15,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.HttpClientErrorException; + import com.fasterxml.jackson.databind.JsonNode; import com.uva.api.users.models.AuthDTO; import com.uva.api.users.services.UserService; @@ -39,9 +41,8 @@ public class UserController { String name = json.get("name"); String email = json.get("email"); - if (!Utils.notEmptyStrings(name, email)) { - return new ResponseEntity<String>("Missing required fields", HttpStatus.BAD_REQUEST); - } + if (!Utils.notEmptyStrings(name, email)) + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing required fields"); return userService.updateUserData(id, name, email); } @@ -50,9 +51,8 @@ public class UserController { public ResponseEntity<?> updatePassword(@PathVariable int id, @RequestBody JsonNode json) { String password = json.get("password").asText(); - if (!Utils.notEmptyStrings(password)) { - return new ResponseEntity<String>("Missing required fields", HttpStatus.BAD_REQUEST); - } + if (!Utils.notEmptyStrings(password)) + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing required fields"); return userService.changePassword(id, password); } diff --git a/java/services/users/src/main/java/com/uva/api/users/services/ClientService.java b/java/services/users/src/main/java/com/uva/api/users/services/ClientService.java index a0a197553b27ea17b2c351f489ba3da1d7f3d503..84f2826176cdd31a13b18d0559c72e9cf7b84ab2 100644 --- a/java/services/users/src/main/java/com/uva/api/users/services/ClientService.java +++ b/java/services/users/src/main/java/com/uva/api/users/services/ClientService.java @@ -10,7 +10,6 @@ import org.springframework.stereotype.Service; import com.uva.api.users.api.BookingAPI; import com.uva.api.users.models.Client; import com.uva.api.users.models.ClientStatus; -import com.uva.api.users.models.User; import com.uva.api.users.models.UserRol; import com.uva.api.users.models.remote.Booking; import com.uva.api.users.repositories.ClientRepository; @@ -25,31 +24,32 @@ public class ClientService { @Autowired private BookingAPI bookingAPI; - public ResponseEntity<?> findAll() { + public ResponseEntity<List<Client>> findAll() { return ResponseEntity.ok(clientRepository.findAll()); } - public ResponseEntity<?> findById(int id) { + public ResponseEntity<Client> findById(int id) { Client client = Utils.assertUser(clientRepository.findById(id)); return ResponseEntity.ok(client); } - public Client deleteById(int id) { + public ResponseEntity<Client> deleteById(int id) { Client client = Utils.assertUser(clientRepository.findById(id)); bookingAPI.deleteAllByUserId(id); clientRepository.delete(client); - return client; + return ResponseEntity.ok(client); } - public Client save(Client client) { + public ResponseEntity<Client> save(Client client) { // Default rol client.setRol(UserRol.CLIENT); - return clientRepository.save(client); + client = clientRepository.save(client); + return ResponseEntity.ok(client); } // TODO No entiendo donde deberÃa ir esto - public User updateClientStatus(int id, ClientStatus status) { - Client user = Utils.assertUser(clientRepository.findById(id)); + public ResponseEntity<?> updateClientStatus(int id, ClientStatus status) { + Client client = Utils.assertUser(clientRepository.findById(id)); List<Booking> bookings = bookingAPI.getAllByUserId(id); @@ -79,8 +79,10 @@ public class ClientService { break; } - user.setStatus(status); + client.setStatus(status); - return clientRepository.save(user); + client = clientRepository.save(client); + + return ResponseEntity.ok(client); } } diff --git a/java/services/users/src/main/java/com/uva/api/users/services/ManagerService.java b/java/services/users/src/main/java/com/uva/api/users/services/ManagerService.java index cf9e95214e1ca2aee959ea5614f24b5d2b27d461..de135d238b2fb46a98553479c32786133f8ea34a 100644 --- a/java/services/users/src/main/java/com/uva/api/users/services/ManagerService.java +++ b/java/services/users/src/main/java/com/uva/api/users/services/ManagerService.java @@ -3,6 +3,7 @@ package com.uva.api.users.services; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import com.uva.api.users.api.HotelApi; import com.uva.api.users.models.Manager; @@ -18,23 +19,25 @@ public class ManagerService { @Autowired private ManagerRepository managerRepository; - public Manager save(Manager manager) { - return managerRepository.save(manager); + public ResponseEntity<Manager> save(Manager manager) { + manager = managerRepository.save(manager); + return ResponseEntity.ok(manager); } - public List<Manager> findAll() { - return managerRepository.findAll(); + public ResponseEntity<List<Manager>> findAll() { + List<Manager> managers = managerRepository.findAll(); + return ResponseEntity.ok(managers); } - public Manager findById(int id) { + public ResponseEntity<Manager> findById(int id) { Manager manager = Utils.assertUser(managerRepository.findById(id)); - return manager; + return ResponseEntity.ok(manager); } - public Object deleteById(Integer id) { + public ResponseEntity<Manager> deleteById(Integer id) { Manager manager = Utils.assertUser(managerRepository.findById(id)); hotelApi.deleteAllByManagerId(id); managerRepository.delete(manager); - return manager; + return ResponseEntity.ok(manager); } } diff --git a/java/services/users/src/main/java/com/uva/api/users/services/UserService.java b/java/services/users/src/main/java/com/uva/api/users/services/UserService.java index 23125b307f4ae9d974511d2693ff4185c7bf5cde..a78f939b2523e099ecd5aba8ca1a882679d3916f 100644 --- a/java/services/users/src/main/java/com/uva/api/users/services/UserService.java +++ b/java/services/users/src/main/java/com/uva/api/users/services/UserService.java @@ -71,14 +71,14 @@ public class UserService { case HOTEL_ADMIN: Manager manager = new Manager(); BeanUtils.copyProperties(request, manager); - user = managerService.save(manager); + user = managerService.save(manager).getBody(); break; case CLIENT: // By default default: Client client = new Client(); BeanUtils.copyProperties(request, client); - user = clientService.save(client); + user = clientService.save(client).getBody(); break; } return ResponseEntity.ok(user);