From f4a1bb266bb966ccf2fa53201faed73ee3cde768 Mon Sep 17 00:00:00 2001 From: hugcubi <hugo.cubino@estudiantes.uva.es> Date: Sat, 14 Dec 2024 18:45:36 +0100 Subject: [PATCH] =?UTF-8?q?Correcci=C3=B3n=20Monolito,=20tanteo=20de=20boo?= =?UTF-8?q?king=20remoto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../uva/monolith/RoomBookingApplication.java | 2 +- .../uva/monolith/config/SecurityConfig.java | 6 +- .../exceptions/GlobalExceptionHandler.java | 2 +- .../exceptions/HotelNotFoundException.java | 2 +- .../exceptions/InvalidDateRangeException.java | 2 +- .../exceptions/InvalidRequestException.java | 2 +- .../filter/JwtAuthenticationFilter.java | 4 +- .../controllers/BookingController.java | 6 +- .../services/bookings/models/Booking.java | 6 +- .../repositories/BookingRepository.java | 4 +- .../bookings/services/BookingService.java | 16 +-- .../hotels/controllers/HotelController.java | 22 ++-- .../services/hotels/models/Address.java | 2 +- .../services/hotels/models/Hotel.java | 4 +- .../monolith/services/hotels/models/Room.java | 4 +- .../services/hotels/models/RoomType.java | 2 +- .../hotels/repositories/HotelRepository.java | 4 +- .../hotels/repositories/RoomRepository.java | 4 +- .../users/controllers/UserController.java | 8 +- .../services/users/models/AuthResponse.java | 2 +- .../services/users/models/Client.java | 4 +- .../services/users/models/HotelManager.java | 4 +- .../monolith/services/users/models/User.java | 2 +- .../services/users/models/UserRol.java | 2 +- .../services/users/models/UserStatus.java | 2 +- .../users/repositories/ClientRepository.java | 4 +- .../repositories/HotelManagerRepository.java | 4 +- .../users/repositories/UserRepository.java | 4 +- .../services/users/services/UserService.java | 20 ++-- .../com/uva/authentication/api/UserAPI.java | 5 +- .../interceptor/AuthHttpInterceptor.java | 4 +- .../authentication/models/remote/Booking.java | 49 --------- .../authentication/models/remote/Client.java | 53 --------- .../authentication/models/remote/Hotel.java | 48 -------- .../models/remote/HotelManager.java | 32 ------ .../models/remote/Response.java | 16 --- .../authentication/models/remote/User.java | 103 +++--------------- .../authentication/models/remote/UserRol.java | 2 +- .../models/remote/UserStatus.java | 5 - .../repositories/ClientRepository.java | 10 -- .../repositories/HotelManagerRepository.java | 10 -- .../repositories/UserRepository.java | 10 -- .../authentication/services/AuthService.java | 8 +- .../com/uva/authentication/utils/JwtUtil.java | 4 +- java/services/users/pom.xml | 7 ++ .../java/com/uva/api/apis/BookingAPI.java | 16 +++ .../main/java/com/uva/api/models/Booking.java | 12 -- .../main/java/com/uva/api/models/Client.java | 36 +++--- .../main/java/com/uva/api/models/Hotel.java | 5 - .../java/com/uva/api/models/HotelManager.java | 39 +++---- .../main/java/com/uva/api/models/User.java | 67 +++--------- .../com/uva/api/models/remote/Booking.java | 21 ++++ .../com/uva/api/services/UserService.java | 16 ++- 53 files changed, 205 insertions(+), 523 deletions(-) delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/models/remote/Booking.java delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/models/remote/Client.java delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/models/remote/Hotel.java delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/models/remote/HotelManager.java delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/models/remote/Response.java delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/models/remote/UserStatus.java delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/repositories/ClientRepository.java delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/repositories/HotelManagerRepository.java delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/repositories/UserRepository.java create mode 100644 java/services/users/src/main/java/com/uva/api/apis/BookingAPI.java delete mode 100644 java/services/users/src/main/java/com/uva/api/models/Booking.java delete mode 100644 java/services/users/src/main/java/com/uva/api/models/Hotel.java create mode 100644 java/services/users/src/main/java/com/uva/api/models/remote/Booking.java diff --git a/java/roomBooking/src/main/java/com/uva/monolith/RoomBookingApplication.java b/java/roomBooking/src/main/java/com/uva/monolith/RoomBookingApplication.java index 732bfa2..0a5db24 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/RoomBookingApplication.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/RoomBookingApplication.java @@ -1,4 +1,4 @@ -package com.uva.api; +package com.uva.monolith; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/config/SecurityConfig.java b/java/roomBooking/src/main/java/com/uva/monolith/config/SecurityConfig.java index 914469e..8264f84 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/config/SecurityConfig.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/config/SecurityConfig.java @@ -1,4 +1,4 @@ -package com.uva.api.config; +package com.uva.monolith.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -8,8 +8,8 @@ import org.springframework.security.config.annotation.web.configuration.EnableWe import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; -import com.uva.api.filter.JwtAuthenticationFilter; -import com.uva.api.services.users.models.UserRol; +import com.uva.monolith.filter.JwtAuthenticationFilter; +import com.uva.monolith.services.users.models.UserRol; @Configuration @EnableWebSecurity diff --git a/java/roomBooking/src/main/java/com/uva/monolith/exceptions/GlobalExceptionHandler.java b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/GlobalExceptionHandler.java index 5681a60..9428c51 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/exceptions/GlobalExceptionHandler.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/GlobalExceptionHandler.java @@ -1,4 +1,4 @@ -package com.uva.api.exceptions; +package com.uva.monolith.exceptions; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/exceptions/HotelNotFoundException.java b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/HotelNotFoundException.java index dc466f6..129a0b1 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/exceptions/HotelNotFoundException.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/HotelNotFoundException.java @@ -1,4 +1,4 @@ -package com.uva.api.exceptions; +package com.uva.monolith.exceptions; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidDateRangeException.java b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidDateRangeException.java index 58bf97d..5fea986 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidDateRangeException.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidDateRangeException.java @@ -1,4 +1,4 @@ -package com.uva.api.exceptions; +package com.uva.monolith.exceptions; public class InvalidDateRangeException extends RuntimeException { public InvalidDateRangeException(String message) { diff --git a/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidRequestException.java b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidRequestException.java index 677cc4b..ca09e05 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidRequestException.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidRequestException.java @@ -1,4 +1,4 @@ -package com.uva.api.exceptions; +package com.uva.monolith.exceptions; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/filter/JwtAuthenticationFilter.java b/java/roomBooking/src/main/java/com/uva/monolith/filter/JwtAuthenticationFilter.java index 8833440..c564150 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/filter/JwtAuthenticationFilter.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/filter/JwtAuthenticationFilter.java @@ -1,4 +1,4 @@ -package com.uva.api.filter; +package com.uva.monolith.filter; import com.auth0.jwt.JWT; import com.auth0.jwt.JWTVerifier; @@ -13,7 +13,7 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; import org.springframework.stereotype.Component; -import com.uva.api.services.users.models.UserRol; +import com.uva.monolith.services.users.models.UserRol; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/controllers/BookingController.java b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/controllers/BookingController.java index b454a36..602f16a 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/controllers/BookingController.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/controllers/BookingController.java @@ -1,7 +1,7 @@ -package com.uva.api.services.bookings.controllers; +package com.uva.monolith.services.bookings.controllers; -import com.uva.api.services.bookings.models.Booking; -import com.uva.api.services.bookings.services.BookingService; +import com.uva.monolith.services.bookings.models.Booking; +import com.uva.monolith.services.bookings.services.BookingService; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/models/Booking.java b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/models/Booking.java index a1df84f..533ee0c 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/models/Booking.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/models/Booking.java @@ -1,4 +1,4 @@ -package com.uva.api.services.bookings.models; +package com.uva.monolith.services.bookings.models; import jakarta.persistence.Basic; import jakarta.persistence.CascadeType; @@ -13,8 +13,8 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import java.time.LocalDate; -import com.uva.api.services.hotels.models.Room; -import com.uva.api.services.users.models.Client; +import com.uva.monolith.services.hotels.models.Room; +import com.uva.monolith.services.users.models.Client; @Entity @Table(name = "bookings") diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/repositories/BookingRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/repositories/BookingRepository.java index 50af181..b5ace65 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/repositories/BookingRepository.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/repositories/BookingRepository.java @@ -1,5 +1,5 @@ // BookingRepository.java -package com.uva.api.services.bookings.repositories; +package com.uva.monolith.services.bookings.repositories; import jakarta.transaction.Transactional; @@ -11,7 +11,7 @@ import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; -import com.uva.api.services.bookings.models.Booking; +import com.uva.monolith.services.bookings.models.Booking; public interface BookingRepository extends JpaRepository<Booking, Integer> { @Query("SELECT b FROM Booking b WHERE b.userId.id = ?1") diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/services/BookingService.java b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/services/BookingService.java index 2554413..176f49d 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/services/BookingService.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/services/BookingService.java @@ -1,11 +1,11 @@ -package com.uva.api.services.bookings.services; - -import com.uva.api.services.bookings.models.Booking; -import com.uva.api.services.bookings.repositories.BookingRepository; -import com.uva.api.services.hotels.models.Room; -import com.uva.api.services.hotels.repositories.RoomRepository; -import com.uva.api.services.users.models.Client; -import com.uva.api.services.users.repositories.ClientRepository; +package com.uva.monolith.services.bookings.services; + +import com.uva.monolith.services.bookings.models.Booking; +import com.uva.monolith.services.bookings.repositories.BookingRepository; +import com.uva.monolith.services.hotels.models.Room; +import com.uva.monolith.services.hotels.repositories.RoomRepository; +import com.uva.monolith.services.users.models.Client; +import com.uva.monolith.services.users.repositories.ClientRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/controllers/HotelController.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/controllers/HotelController.java index 3321df6..781cb62 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/controllers/HotelController.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/controllers/HotelController.java @@ -1,4 +1,4 @@ -package com.uva.api.services.hotels.controllers; +package com.uva.monolith.services.hotels.controllers; import java.util.List; import java.util.Map; @@ -11,16 +11,16 @@ import org.springframework.http.ResponseEntity; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; -import com.uva.api.exceptions.HotelNotFoundException; -import com.uva.api.exceptions.InvalidDateRangeException; -import com.uva.api.exceptions.InvalidRequestException; -import com.uva.api.services.bookings.repositories.BookingRepository; -import com.uva.api.services.hotels.models.Hotel; -import com.uva.api.services.hotels.models.Room; -import com.uva.api.services.hotels.repositories.HotelRepository; -import com.uva.api.services.hotels.repositories.RoomRepository; -import com.uva.api.services.users.models.HotelManager; -import com.uva.api.services.users.repositories.HotelManagerRepository; +import com.uva.monolith.exceptions.HotelNotFoundException; +import com.uva.monolith.exceptions.InvalidDateRangeException; +import com.uva.monolith.exceptions.InvalidRequestException; +import com.uva.monolith.services.bookings.repositories.BookingRepository; +import com.uva.monolith.services.hotels.models.Hotel; +import com.uva.monolith.services.hotels.models.Room; +import com.uva.monolith.services.hotels.repositories.HotelRepository; +import com.uva.monolith.services.hotels.repositories.RoomRepository; +import com.uva.monolith.services.users.models.HotelManager; +import com.uva.monolith.services.users.repositories.HotelManagerRepository; @RestController @RequestMapping("hotels") diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Address.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Address.java index 61fbf60..5f31a2a 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Address.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Address.java @@ -1,4 +1,4 @@ -package com.uva.api.services.hotels.models; +package com.uva.monolith.services.hotels.models; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Hotel.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Hotel.java index 71e9c04..21f5cec 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Hotel.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Hotel.java @@ -1,8 +1,8 @@ -package com.uva.api.services.hotels.models; +package com.uva.monolith.services.hotels.models; import java.util.List; -import com.uva.api.services.users.models.HotelManager; +import com.uva.monolith.services.users.models.HotelManager; import jakarta.persistence.Basic; import jakarta.persistence.CascadeType; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Room.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Room.java index 368e6d7..72a6a72 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Room.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Room.java @@ -1,9 +1,9 @@ -package com.uva.api.services.hotels.models; +package com.uva.monolith.services.hotels.models; import java.util.List; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.uva.api.services.bookings.models.Booking; +import com.uva.monolith.services.bookings.models.Booking; import jakarta.persistence.Basic; import jakarta.persistence.CascadeType; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/RoomType.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/RoomType.java index 7f85313..b9e8258 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/RoomType.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/RoomType.java @@ -1,4 +1,4 @@ -package com.uva.api.services.hotels.models; +package com.uva.monolith.services.hotels.models; public enum RoomType { SINGLE, diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/HotelRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/HotelRepository.java index 320adb8..eddb664 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/HotelRepository.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/HotelRepository.java @@ -1,11 +1,11 @@ -package com.uva.api.services.hotels.repositories; +package com.uva.monolith.services.hotels.repositories; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; -import com.uva.api.services.hotels.models.Hotel; +import com.uva.monolith.services.hotels.models.Hotel; public interface HotelRepository extends JpaRepository<Hotel, Integer> { @Query("SELECT h FROM Hotel h WHERE h.hotelManager.id = ?1") diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/RoomRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/RoomRepository.java index 1f2a3fd..15cc3d3 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/RoomRepository.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/RoomRepository.java @@ -1,9 +1,9 @@ -package com.uva.api.services.hotels.repositories; +package com.uva.monolith.services.hotels.repositories; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; -import com.uva.api.services.hotels.models.Room; +import com.uva.monolith.services.hotels.models.Room; import java.time.LocalDate; import java.util.List; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/controllers/UserController.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/controllers/UserController.java index ab6a975..15fc498 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/controllers/UserController.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/controllers/UserController.java @@ -1,4 +1,4 @@ -package com.uva.api.services.users.controllers; +package com.uva.monolith.services.users.controllers; import java.util.List; import java.util.Map; @@ -19,9 +19,9 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.HttpClientErrorException; -import com.uva.api.services.users.models.User; -import com.uva.api.services.users.models.UserStatus; -import com.uva.api.services.users.services.UserService; +import com.uva.monolith.services.users.models.User; +import com.uva.monolith.services.users.models.UserStatus; +import com.uva.monolith.services.users.services.UserService; @RestController @RequestMapping("users") diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/AuthResponse.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/AuthResponse.java index 9a4564d..8f33481 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/AuthResponse.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/AuthResponse.java @@ -1,4 +1,4 @@ -package com.uva.api.services.users.models; +package com.uva.monolith.services.users.models; public class AuthResponse { diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/Client.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/Client.java index 1814b0b..e106ecd 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/Client.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/Client.java @@ -1,11 +1,11 @@ -package com.uva.api.services.users.models; +package com.uva.monolith.services.users.models; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.uva.api.services.bookings.models.Booking; +import com.uva.monolith.services.bookings.models.Booking; import jakarta.persistence.Basic; import jakarta.persistence.CascadeType; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/HotelManager.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/HotelManager.java index e185fa5..0e6f4b0 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/HotelManager.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/HotelManager.java @@ -1,9 +1,9 @@ -package com.uva.api.services.users.models; +package com.uva.monolith.services.users.models; import java.util.ArrayList; import java.util.List; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.uva.api.services.hotels.models.Hotel; +import com.uva.monolith.services.hotels.models.Hotel; import jakarta.persistence.CascadeType; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/User.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/User.java index e6262ce..ecfd33d 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/User.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/User.java @@ -1,4 +1,4 @@ -package com.uva.api.services.users.models; +package com.uva.monolith.services.users.models; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserRol.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserRol.java index 0a02cb6..f408ba5 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserRol.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserRol.java @@ -1,4 +1,4 @@ -package com.uva.api.services.users.models; +package com.uva.monolith.services.users.models; public enum UserRol { ADMIN, HOTEL_ADMIN, CLIENT diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserStatus.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserStatus.java index 883dc43..362b868 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserStatus.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserStatus.java @@ -1,4 +1,4 @@ -package com.uva.api.services.users.models; +package com.uva.monolith.services.users.models; public enum UserStatus { NO_BOOKINGS, WITH_ACTIVE_BOOKINGS, WITH_INACTIVE_BOOKINGS; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/ClientRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/ClientRepository.java index 7b56de6..1c1b46f 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/ClientRepository.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/ClientRepository.java @@ -1,9 +1,9 @@ -package com.uva.api.services.users.repositories; +package com.uva.monolith.services.users.repositories; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; -import com.uva.api.services.users.models.Client; +import com.uva.monolith.services.users.models.Client; public interface ClientRepository extends JpaRepository<Client, Integer> { Optional<Client> findByEmail(String email); diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/HotelManagerRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/HotelManagerRepository.java index 5a6f077..092a251 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/HotelManagerRepository.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/HotelManagerRepository.java @@ -1,9 +1,9 @@ -package com.uva.api.services.users.repositories; +package com.uva.monolith.services.users.repositories; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; -import com.uva.api.services.users.models.HotelManager; +import com.uva.monolith.services.users.models.HotelManager; public interface HotelManagerRepository extends JpaRepository<HotelManager, Integer> { Optional<HotelManager> findByEmail(String email); diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/UserRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/UserRepository.java index fa55563..e5b44c9 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/UserRepository.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/UserRepository.java @@ -1,10 +1,10 @@ -package com.uva.api.services.users.repositories; +package com.uva.monolith.services.users.repositories; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; -import com.uva.api.services.users.models.User; +import com.uva.monolith.services.users.models.User; public interface UserRepository extends JpaRepository<User, Integer> { Optional<User> findByEmail(String email); diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/services/UserService.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/services/UserService.java index b81c35c..bdd5b9d 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/services/UserService.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/services/UserService.java @@ -1,4 +1,4 @@ -package com.uva.api.services.users.services; +package com.uva.monolith.services.users.services; import java.time.LocalDate; import java.util.List; @@ -10,15 +10,15 @@ import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.web.client.HttpClientErrorException; -import com.uva.api.services.users.models.AuthResponse; -import com.uva.api.services.users.models.Client; -import com.uva.api.services.users.models.HotelManager; -import com.uva.api.services.users.models.User; -import com.uva.api.services.users.models.UserRol; -import com.uva.api.services.users.models.UserStatus; -import com.uva.api.services.users.repositories.ClientRepository; -import com.uva.api.services.users.repositories.HotelManagerRepository; -import com.uva.api.services.users.repositories.UserRepository; +import com.uva.monolith.services.users.models.AuthResponse; +import com.uva.monolith.services.users.models.Client; +import com.uva.monolith.services.users.models.HotelManager; +import com.uva.monolith.services.users.models.User; +import com.uva.monolith.services.users.models.UserRol; +import com.uva.monolith.services.users.models.UserStatus; +import com.uva.monolith.services.users.repositories.ClientRepository; +import com.uva.monolith.services.users.repositories.HotelManagerRepository; +import com.uva.monolith.services.users.repositories.UserRepository; @Service public class UserService { diff --git a/java/services/auth/src/main/java/com/uva/authentication/api/UserAPI.java b/java/services/auth/src/main/java/com/uva/authentication/api/UserAPI.java index 2714036..4955ba4 100644 --- a/java/services/auth/src/main/java/com/uva/authentication/api/UserAPI.java +++ b/java/services/auth/src/main/java/com/uva/authentication/api/UserAPI.java @@ -9,7 +9,6 @@ import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.RestTemplate; import com.uva.authentication.models.RegisterRequest; -import com.uva.authentication.models.remote.Response; import com.uva.authentication.models.remote.User; @Component @@ -39,11 +38,11 @@ public class UserAPI { * @return User or null if not exists * @throws HttpClientErrorException */ - public Response getUserByEmail(String email) { + public User getUserByEmail(String email) { String url = USER_API_URL + "?email={email}"; System.err.println(url); try { - ResponseEntity<Response> userResponse = restTemplate.getForEntity(url, Response.class, email); + ResponseEntity<User> userResponse = restTemplate.getForEntity(url, User.class, email); return userResponse.getBody(); } catch (HttpClientErrorException e) { if (e.getStatusCode() != HttpStatus.NOT_FOUND) diff --git a/java/services/auth/src/main/java/com/uva/authentication/interceptor/AuthHttpInterceptor.java b/java/services/auth/src/main/java/com/uva/authentication/interceptor/AuthHttpInterceptor.java index 094cb5a..b64a0f6 100644 --- a/java/services/auth/src/main/java/com/uva/authentication/interceptor/AuthHttpInterceptor.java +++ b/java/services/auth/src/main/java/com/uva/authentication/interceptor/AuthHttpInterceptor.java @@ -7,7 +7,7 @@ import org.springframework.http.client.ClientHttpResponse; import org.springframework.http.client.ClientHttpRequestInterceptor; import org.springframework.stereotype.Component; -import com.uva.authentication.models.remote.Response; +import com.uva.authentication.models.remote.User; import com.uva.authentication.models.remote.UserRol; import com.uva.authentication.utils.JwtUtil; @@ -20,7 +20,7 @@ public class AuthHttpInterceptor implements ClientHttpRequestInterceptor { private JwtUtil jwtUtil; private String token; - private final Response USER = new Response(-1, "auth", "auth@dev.com", null, UserRol.ADMIN); + private final User USER = new User(-1, "auth", "auth@dev.com", null, UserRol.ADMIN); private String getAccessToken() { if (token == null || token.isEmpty()) { diff --git a/java/services/auth/src/main/java/com/uva/authentication/models/remote/Booking.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/Booking.java deleted file mode 100644 index 354c65d..0000000 --- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/Booking.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.uva.authentication.models.remote; - -import jakarta.persistence.Basic; -import jakarta.persistence.CascadeType; -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.JoinColumn; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; - -@Entity -@Table(name = "bookings") -public class Booking { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Basic(optional = false) - private int id; - @JoinColumn(name = "user_id", referencedColumnName = "id") - @ManyToOne(optional = false, fetch = FetchType.EAGER, cascade = CascadeType.MERGE) - private Client userId; - - public Booking() { - } - - public Booking(int id, Client userId) { - this.id = id; - this.userId = userId; - } - - public void setId(int id) { - this.id = id; - } - - public int getId() { - return this.id; - } - - public void setUserId(Client userId) { - this.userId = userId; - } - - public Client getUserId() { - return this.userId; - } - -} diff --git a/java/services/auth/src/main/java/com/uva/authentication/models/remote/Client.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/Client.java deleted file mode 100644 index 5ebf50a..0000000 --- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/Client.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.uva.authentication.models.remote; - -import java.util.ArrayList; -import java.util.List; - -import jakarta.persistence.Basic; -import jakarta.persistence.CascadeType; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.EnumType; -import jakarta.persistence.Enumerated; -import jakarta.persistence.FetchType; -import jakarta.persistence.OneToMany; -import jakarta.persistence.Table; - -@Entity -@Table(name = "user_client") -public class Client extends User { - - @Basic(optional = false) - @Column(nullable = false) - @Enumerated(EnumType.STRING) - private UserStatus status = UserStatus.NO_BOOKINGS; - - @OneToMany(mappedBy = "userId", fetch = FetchType.EAGER, cascade = CascadeType.ALL) - private List<Booking> bookings = new ArrayList<>(); - - public Client() { - super(); - } - - public Client(int id, String name, String email, String password, UserStatus status, List<Booking> bookings) { - super(id, name, email, password, UserRol.CLIENT); - setStatus(status); - setBookings(bookings); - } - - public UserStatus getStatus() { - return this.status; - } - - public void setStatus(UserStatus status) { - this.status = status; - } - - public List<Booking> getBookings() { - return this.bookings; - } - - public void setBookings(List<Booking> bookings) { - this.bookings = bookings; - } -} diff --git a/java/services/auth/src/main/java/com/uva/authentication/models/remote/Hotel.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/Hotel.java deleted file mode 100644 index 5710f9d..0000000 --- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/Hotel.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.uva.authentication.models.remote; - -import jakarta.persistence.Basic; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.JoinColumn; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; - -@Entity -@Table(name = "hotels") -public class Hotel { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Basic(optional = false) - private int id; - - @ManyToOne(optional = false) - @JoinColumn(name = "hotel_manager", referencedColumnName = "id") - private HotelManager hotelManager; - - public Hotel() { - } - - public Hotel(int id, HotelManager hotelManager) { - setId(id); - setHotelManager(hotelManager); - } - - public int getId() { - return this.id; - } - - public void setId(int id) { - this.id = id; - } - - public void setHotelManager(HotelManager hotelManager) { - this.hotelManager = hotelManager; - } - - public HotelManager getHotelManager() { - return hotelManager; - } -} diff --git a/java/services/auth/src/main/java/com/uva/authentication/models/remote/HotelManager.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/HotelManager.java deleted file mode 100644 index dd58a50..0000000 --- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/HotelManager.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.uva.authentication.models.remote; - -import java.util.ArrayList; -import java.util.List; - -import jakarta.persistence.CascadeType; -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.OneToMany; -import jakarta.persistence.Table; - -@Entity -@Table(name = "hotel_manager_user") -public class HotelManager extends User { - - @OneToMany(mappedBy = "hotelManager", fetch = FetchType.EAGER, cascade = CascadeType.ALL) - private List<Hotel> hotels = new ArrayList<>(); - - public HotelManager() { - super(); - } - - public HotelManager(int id, String name, String email, String password, List<Hotel> hotels) { - super(id, name, email, password, UserRol.HOTEL_ADMIN); - setHotels(hotels); - } - - public void setHotels(List<Hotel> hotels) { - this.hotels = hotels; - } - -} diff --git a/java/services/auth/src/main/java/com/uva/authentication/models/remote/Response.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/Response.java deleted file mode 100644 index 566a210..0000000 --- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/Response.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.uva.authentication.models.remote; - -import com.uva.authentication.models.RegisterRequest; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -@NoArgsConstructor -public class Response extends RegisterRequest { - private int id; -} diff --git a/java/services/auth/src/main/java/com/uva/authentication/models/remote/User.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/User.java index a72ecfa..ae8de36 100644 --- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/User.java +++ b/java/services/auth/src/main/java/com/uva/authentication/models/remote/User.java @@ -1,95 +1,24 @@ package com.uva.authentication.models.remote; -import com.fasterxml.jackson.annotation.JsonIgnore; - -import jakarta.persistence.Basic; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.EnumType; -import jakarta.persistence.Enumerated; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.Inheritance; -import jakarta.persistence.InheritanceType; -import jakarta.persistence.Table; - -@Entity -@Inheritance(strategy = InheritanceType.JOINED) -@Table(name = "users") -public class User { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Basic(optional = false) - @Column(nullable = false) +import com.uva.authentication.models.RegisterRequest; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +@NoArgsConstructor +public class User extends RegisterRequest { private int id; - @Basic(optional = false) - @Column(nullable = false) - private String name; - - @Basic(optional = false) - @Column(nullable = false, unique = true) - private String email; - - @JsonIgnore - @Basic(optional = false) - @Column(nullable = false) - private String password; - - @Basic(optional = false) - @Column(nullable = false) - @Enumerated(EnumType.STRING) - private UserRol rol = UserRol.CLIENT; - - public User() { - } - - public User(int id, String name, String email, String password, UserRol rol) { - setId(id); - setName(name); + public User(int id, String email, String password, String name, UserRol rol) { + super(); setEmail(email); + setName(name); + setPassword(password); setRol(rol); } - - public int getId() { - return this.id; - } - - public void setId(int id) { - this.id = id; - } - - public String getName() { - return this.name; - } - - public void setName(String name) { - this.name = name; - } - - public String getEmail() { - return this.email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getPassword() { - return password; - } - - public void setPassword(String rawPassword) { - this.password = rawPassword; - } - - public UserRol getRol() { - return this.rol; - } - - public void setRol(UserRol rol) { - this.rol = rol; - } } diff --git a/java/services/auth/src/main/java/com/uva/authentication/models/remote/UserRol.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/UserRol.java index fe4d90d..b03ee5f 100644 --- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/UserRol.java +++ b/java/services/auth/src/main/java/com/uva/authentication/models/remote/UserRol.java @@ -1,5 +1,5 @@ package com.uva.authentication.models.remote; public enum UserRol { - ADMIN, HOTEL_ADMIN, CLIENT + ADMIN, AUTH } diff --git a/java/services/auth/src/main/java/com/uva/authentication/models/remote/UserStatus.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/UserStatus.java deleted file mode 100644 index 5dd62bc..0000000 --- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/UserStatus.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.uva.authentication.models.remote; - -public enum UserStatus { - NO_BOOKINGS, WITH_ACTIVE_BOOKINGS, WITH_INACTIVE_BOOKINGS; -} diff --git a/java/services/auth/src/main/java/com/uva/authentication/repositories/ClientRepository.java b/java/services/auth/src/main/java/com/uva/authentication/repositories/ClientRepository.java deleted file mode 100644 index 6d2b8ee..0000000 --- a/java/services/auth/src/main/java/com/uva/authentication/repositories/ClientRepository.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.uva.authentication.repositories; - -import java.util.Optional; -import org.springframework.data.jpa.repository.JpaRepository; - -import com.uva.authentication.models.remote.Client; - -public interface ClientRepository extends JpaRepository<Client, Integer> { - Optional<Client> findByEmail(String email); -} \ No newline at end of file diff --git a/java/services/auth/src/main/java/com/uva/authentication/repositories/HotelManagerRepository.java b/java/services/auth/src/main/java/com/uva/authentication/repositories/HotelManagerRepository.java deleted file mode 100644 index c051ddd..0000000 --- a/java/services/auth/src/main/java/com/uva/authentication/repositories/HotelManagerRepository.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.uva.authentication.repositories; - -import java.util.Optional; -import org.springframework.data.jpa.repository.JpaRepository; - -import com.uva.authentication.models.remote.HotelManager; - -public interface HotelManagerRepository extends JpaRepository<HotelManager, Integer> { - Optional<HotelManager> findByEmail(String email); -} \ No newline at end of file diff --git a/java/services/auth/src/main/java/com/uva/authentication/repositories/UserRepository.java b/java/services/auth/src/main/java/com/uva/authentication/repositories/UserRepository.java deleted file mode 100644 index 65f98ed..0000000 --- a/java/services/auth/src/main/java/com/uva/authentication/repositories/UserRepository.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.uva.authentication.repositories; - -import java.util.Optional; -import org.springframework.data.jpa.repository.JpaRepository; - -import com.uva.authentication.models.remote.User; - -public interface UserRepository extends JpaRepository<User, Integer> { - Optional<User> findByEmail(String email); -} \ No newline at end of file diff --git a/java/services/auth/src/main/java/com/uva/authentication/services/AuthService.java b/java/services/auth/src/main/java/com/uva/authentication/services/AuthService.java index bccba7f..37b16ff 100644 --- a/java/services/auth/src/main/java/com/uva/authentication/services/AuthService.java +++ b/java/services/auth/src/main/java/com/uva/authentication/services/AuthService.java @@ -9,7 +9,6 @@ import org.springframework.web.client.HttpClientErrorException; import com.uva.authentication.api.UserAPI; import com.uva.authentication.models.LoginRequest; import com.uva.authentication.models.RegisterRequest; -import com.uva.authentication.models.remote.Response; import com.uva.authentication.models.remote.User; import com.uva.authentication.utils.JwtUtil; import com.uva.authentication.utils.SecurityUtils; @@ -23,8 +22,7 @@ public class AuthService { @Autowired private UserAPI userAPI; - private boolean authenticateUser(LoginRequest request, Response user) { - System.err.println(user.getPassword() + " " + request.getPassword()); + private boolean authenticateUser(LoginRequest request, User user) { return (user != null) ? SecurityUtils.checkPassword(request.getPassword(), user.getPassword()) : false; @@ -38,9 +36,7 @@ public class AuthService { * @throws HttpClientErrorException(FORBIDDEN) if the credentials are invalid */ public String login(LoginRequest loginRequest) { - Response user = userAPI.getUserByEmail(loginRequest.getEmail()); - System.err.println(user.getName() + ", " + user.getEmail() + ", " + - user.getRol() + ", " + user.getPassword()); + User user = userAPI.getUserByEmail(loginRequest.getEmail()); if (!authenticateUser(loginRequest, user)) { throw new HttpClientErrorException(HttpStatus.FORBIDDEN, "Invalid credentials"); diff --git a/java/services/auth/src/main/java/com/uva/authentication/utils/JwtUtil.java b/java/services/auth/src/main/java/com/uva/authentication/utils/JwtUtil.java index 76cda7e..7b5bbf5 100644 --- a/java/services/auth/src/main/java/com/uva/authentication/utils/JwtUtil.java +++ b/java/services/auth/src/main/java/com/uva/authentication/utils/JwtUtil.java @@ -7,7 +7,7 @@ import org.springframework.stereotype.Component; import com.auth0.jwt.JWT; import com.auth0.jwt.algorithms.Algorithm; -import com.uva.authentication.models.remote.Response; +import com.uva.authentication.models.remote.User; @Component public class JwtUtil { @@ -25,7 +25,7 @@ public class JwtUtil { return jwtExpiration; } - public String generateToken(Response user) { + public String generateToken(User user) { Algorithm algorithm = Algorithm.HMAC256(secretKey); return JWT .create() diff --git a/java/services/users/pom.xml b/java/services/users/pom.xml index 7ee0d6a..ebc7f26 100644 --- a/java/services/users/pom.xml +++ b/java/services/users/pom.xml @@ -63,6 +63,13 @@ <artifactId>jakarta.servlet-api</artifactId> <scope>provided</scope> </dependency> + <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>1.18.36</version> + <scope>provided</scope> + </dependency> </dependencies> <build> diff --git a/java/services/users/src/main/java/com/uva/api/apis/BookingAPI.java b/java/services/users/src/main/java/com/uva/api/apis/BookingAPI.java new file mode 100644 index 0000000..f4886cd --- /dev/null +++ b/java/services/users/src/main/java/com/uva/api/apis/BookingAPI.java @@ -0,0 +1,16 @@ +package com.uva.api.apis; + +import java.util.List; + +import org.springframework.stereotype.Component; + +import com.uva.api.models.remote.Booking; + +@Component +public class BookingAPI { + + public List<Booking> getAllBookingsByUserId(int id) { + return null; + } + +} diff --git a/java/services/users/src/main/java/com/uva/api/models/Booking.java b/java/services/users/src/main/java/com/uva/api/models/Booking.java deleted file mode 100644 index 88367c6..0000000 --- a/java/services/users/src/main/java/com/uva/api/models/Booking.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.uva.api.models; - -import java.time.LocalDate; - -public class Booking { - - public LocalDate getEndDate() { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'getEndDate'"); - } - -} diff --git a/java/services/users/src/main/java/com/uva/api/models/Client.java b/java/services/users/src/main/java/com/uva/api/models/Client.java index 238e23d..d5f695e 100644 --- a/java/services/users/src/main/java/com/uva/api/models/Client.java +++ b/java/services/users/src/main/java/com/uva/api/models/Client.java @@ -1,40 +1,40 @@ package com.uva.api.models; import java.time.LocalDate; -import java.util.ArrayList; import java.util.List; -import com.fasterxml.jackson.annotation.JsonIgnore; +import com.uva.api.models.remote.Booking; import jakarta.persistence.Basic; -import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EnumType; import jakarta.persistence.Enumerated; -import jakarta.persistence.FetchType; -import jakarta.persistence.OneToMany; import jakarta.persistence.Table; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; @Entity @Table(name = "user_client") +@NoArgsConstructor +@Getter +@Setter +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) public class Client extends User { @Basic(optional = false) @Column(nullable = false) @Enumerated(EnumType.STRING) - private UserStatus status; + private UserStatus status = UserStatus.NO_BOOKINGS; - @JsonIgnore - @OneToMany(mappedBy = "userId", fetch = FetchType.EAGER, cascade = CascadeType.ALL) private List<Booking> bookings; - public Client() { - super(); - bookings = new ArrayList<>(); - status = UserStatus.NO_BOOKINGS; - } - public Client(int id, String name, String email, String password, UserStatus status, List<Booking> bookings) { super(id, name, email, password, UserRol.CLIENT); @@ -53,12 +53,4 @@ public class Client extends User { public void setStatus(UserStatus status) { this.status = status; } - - public List<Booking> getBookings() { - return this.bookings; - } - - public void setBookings(List<Booking> bookings) { - this.bookings = bookings; - } } diff --git a/java/services/users/src/main/java/com/uva/api/models/Hotel.java b/java/services/users/src/main/java/com/uva/api/models/Hotel.java deleted file mode 100644 index 29adbbe..0000000 --- a/java/services/users/src/main/java/com/uva/api/models/Hotel.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.uva.api.models; - -public class Hotel { - -} diff --git a/java/services/users/src/main/java/com/uva/api/models/HotelManager.java b/java/services/users/src/main/java/com/uva/api/models/HotelManager.java index 46570f3..a4fdb51 100644 --- a/java/services/users/src/main/java/com/uva/api/models/HotelManager.java +++ b/java/services/users/src/main/java/com/uva/api/models/HotelManager.java @@ -1,37 +1,30 @@ package com.uva.api.models; -import java.util.ArrayList; -import java.util.List; -import com.fasterxml.jackson.annotation.JsonIgnore; -import jakarta.persistence.CascadeType; +import com.fasterxml.jackson.databind.JsonNode; + import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.OneToMany; import jakarta.persistence.Table; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; @Entity @Table(name = "hotel_manager_user") +@NoArgsConstructor +@Getter +@Setter +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) public class HotelManager extends User { - @JsonIgnore - @OneToMany(mappedBy = "hotelManager", fetch = FetchType.EAGER, cascade = CascadeType.ALL) - private List<Hotel> hotels; - - public HotelManager() { - super(); - hotels = new ArrayList<>(); - } + private JsonNode hotels; - public HotelManager(int id, String name, String email, String password, List<Hotel> hotels) { + public HotelManager(int id, String name, String email, String password, JsonNode hotels) { super(id, name, email, password, UserRol.HOTEL_ADMIN); setHotels(hotels); } - - public List<Hotel> getHotels() { - return this.hotels; - } - - public void setHotels(List<Hotel> hotels) { - this.hotels = hotels; - } } diff --git a/java/services/users/src/main/java/com/uva/api/models/User.java b/java/services/users/src/main/java/com/uva/api/models/User.java index bdcb1b5..401f505 100644 --- a/java/services/users/src/main/java/com/uva/api/models/User.java +++ b/java/services/users/src/main/java/com/uva/api/models/User.java @@ -13,10 +13,24 @@ import jakarta.persistence.Id; import jakarta.persistence.Inheritance; import jakarta.persistence.InheritanceType; import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; @Entity @Inheritance(strategy = InheritanceType.JOINED) @Table(name = "users") +@NoArgsConstructor +@AllArgsConstructor +@Setter +@Getter +@Data +@EqualsAndHashCode +@ToString public class User { @Id @@ -33,6 +47,7 @@ public class User { @Column(nullable = false, unique = true) private String email; + @JsonIgnore @Basic(optional = false) @Column(nullable = false) private String password; @@ -41,54 +56,4 @@ public class User { @Column(nullable = false) @Enumerated(EnumType.STRING) private UserRol rol = UserRol.CLIENT; - - public User() { - } - - public User(int id, String name, String email, String password, UserRol rol) { - setId(id); - setName(name); - setEmail(email); - setRol(rol); - } - - public int getId() { - return this.id; - } - - public void setId(int id) { - this.id = id; - } - - public String getName() { - return this.name; - } - - public void setName(String name) { - this.name = name; - } - - public String getEmail() { - return this.email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getPassword() { - return password; - } - - public void setPassword(String rawPassword) { - this.password = rawPassword; - } - - public UserRol getRol() { - return this.rol; - } - - public void setRol(UserRol rol) { - this.rol = rol; - } -} +} \ No newline at end of file diff --git a/java/services/users/src/main/java/com/uva/api/models/remote/Booking.java b/java/services/users/src/main/java/com/uva/api/models/remote/Booking.java new file mode 100644 index 0000000..edb2b06 --- /dev/null +++ b/java/services/users/src/main/java/com/uva/api/models/remote/Booking.java @@ -0,0 +1,21 @@ +package com.uva.api.models.remote; + +import java.time.LocalDate; + +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +@ToString +@EqualsAndHashCode +public class Booking { + private LocalDate startDate; + private LocalDate endDate; +} diff --git a/java/services/users/src/main/java/com/uva/api/services/UserService.java b/java/services/users/src/main/java/com/uva/api/services/UserService.java index 820880f..31d0305 100644 --- a/java/services/users/src/main/java/com/uva/api/services/UserService.java +++ b/java/services/users/src/main/java/com/uva/api/services/UserService.java @@ -10,12 +10,14 @@ import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.web.client.HttpClientErrorException; +import com.uva.api.apis.BookingAPI; import com.uva.api.models.AuthResponse; import com.uva.api.models.Client; import com.uva.api.models.HotelManager; import com.uva.api.models.User; import com.uva.api.models.UserRol; import com.uva.api.models.UserStatus; +import com.uva.api.models.remote.Booking; import com.uva.api.repositories.ClientRepository; import com.uva.api.repositories.HotelManagerRepository; import com.uva.api.repositories.UserRepository; @@ -32,6 +34,9 @@ public class UserService { @Autowired private HotelManagerRepository hotelManagerRepository; + @Autowired + private BookingAPI bookingAPI; + public List<User> getAllUsers() { return userRepository.findAll(); } @@ -44,6 +49,15 @@ public class UserService { return assertUser(userRepository.findById(id)); } + public Client getClientById(int id) { + User user = assertUser(clientRepository.findById(id)); + Client client = new Client(); + BeanUtils.copyProperties(user, client); + List<Booking> bookings = bookingAPI.getAllBookingsByUserId(user.getId()); + client.setBookings(bookings); + return client; + } + public AuthResponse getUserByEmail(String email) { User u = assertUser(userRepository.findByEmail(email)); AuthResponse auth = new AuthResponse(); @@ -68,7 +82,7 @@ public class UserService { case ADMIN: User admin = new User(); BeanUtils.copyProperties(registerRequest, admin); - newUser = admin; // userAPI.save(admin); + newUser = userRepository.save(admin); break; case CLIENT: // Por defecto cliente normal -- GitLab