diff --git a/src/main/java/ybe/mini/travelserver/TravelServerApplication.java b/src/main/java/ybe/mini/travelserver/TravelServerApplication.java index 60faa07..0e3972d 100644 --- a/src/main/java/ybe/mini/travelserver/TravelServerApplication.java +++ b/src/main/java/ybe/mini/travelserver/TravelServerApplication.java @@ -6,8 +6,8 @@ @SpringBootApplication public class TravelServerApplication { - public static void main(String[] args) { - SpringApplication.run(TravelServerApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(TravelServerApplication.class, args); + } } diff --git a/src/main/java/ybe/mini/travelserver/domain/accommodation/dto/AccommodationGetResponse.java b/src/main/java/ybe/mini/travelserver/domain/accommodation/dto/AccommodationGetResponse.java index 7ea539a..dfc1089 100644 --- a/src/main/java/ybe/mini/travelserver/domain/accommodation/dto/AccommodationGetResponse.java +++ b/src/main/java/ybe/mini/travelserver/domain/accommodation/dto/AccommodationGetResponse.java @@ -2,8 +2,8 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Builder; -import ybe.mini.travelserver.domain.accommodation.entity.Location; import ybe.mini.travelserver.domain.accommodation.entity.Accommodation; +import ybe.mini.travelserver.domain.accommodation.entity.Location; @JsonIgnoreProperties(ignoreUnknown = true) public record AccommodationGetResponse( diff --git a/src/main/java/ybe/mini/travelserver/domain/accommodation/entity/Location.java b/src/main/java/ybe/mini/travelserver/domain/accommodation/entity/Location.java index 834e952..f1a2c03 100644 --- a/src/main/java/ybe/mini/travelserver/domain/accommodation/entity/Location.java +++ b/src/main/java/ybe/mini/travelserver/domain/accommodation/entity/Location.java @@ -1,13 +1,14 @@ package ybe.mini.travelserver.domain.accommodation.entity; import jakarta.persistence.Embeddable; +import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; import org.hibernate.annotations.Comment; @Getter -@NoArgsConstructor(access = lombok.AccessLevel.PROTECTED) +@NoArgsConstructor(access = AccessLevel.PROTECTED) @Embeddable @SuperBuilder public class Location { diff --git a/src/main/java/ybe/mini/travelserver/domain/cart/dto/response/CartCreateResponse.java b/src/main/java/ybe/mini/travelserver/domain/cart/dto/response/CartCreateResponse.java index 299a5a2..3dbf8a2 100644 --- a/src/main/java/ybe/mini/travelserver/domain/cart/dto/response/CartCreateResponse.java +++ b/src/main/java/ybe/mini/travelserver/domain/cart/dto/response/CartCreateResponse.java @@ -4,8 +4,8 @@ import jakarta.validation.constraints.Positive; @JsonIgnoreProperties(ignoreUnknown = true) -public record CartCreateResponse ( +public record CartCreateResponse( @Positive Long id -){ +) { } diff --git a/src/main/java/ybe/mini/travelserver/domain/cart/dto/response/CartDeleteResponse.java b/src/main/java/ybe/mini/travelserver/domain/cart/dto/response/CartDeleteResponse.java index 700e340..5c4f458 100644 --- a/src/main/java/ybe/mini/travelserver/domain/cart/dto/response/CartDeleteResponse.java +++ b/src/main/java/ybe/mini/travelserver/domain/cart/dto/response/CartDeleteResponse.java @@ -4,8 +4,8 @@ import jakarta.validation.constraints.Positive; @JsonIgnoreProperties(ignoreUnknown = true) -public record CartDeleteResponse ( +public record CartDeleteResponse( @Positive Long id -){ +) { } \ No newline at end of file diff --git a/src/main/java/ybe/mini/travelserver/domain/cart/dto/response/CartGetResponse.java b/src/main/java/ybe/mini/travelserver/domain/cart/dto/response/CartGetResponse.java index 60f19e7..c7a42e1 100644 --- a/src/main/java/ybe/mini/travelserver/domain/cart/dto/response/CartGetResponse.java +++ b/src/main/java/ybe/mini/travelserver/domain/cart/dto/response/CartGetResponse.java @@ -13,24 +13,24 @@ import java.time.LocalDate; @JsonIgnoreProperties(ignoreUnknown = true) -public record CartGetResponse ( - @Positive - Long id, +public record CartGetResponse( + @Positive + Long id, - @Positive - Integer guestNumber, + @Positive + Integer guestNumber, - @FutureOrPresent - LocalDate checkIn, + @FutureOrPresent + LocalDate checkIn, - @FutureOrPresent - LocalDate checkOut, + @FutureOrPresent + LocalDate checkOut, - @Valid - RoomGetResponse roomGetResponse, + @Valid + RoomGetResponse roomGetResponse, - @Valid - AccommodationGetResponse accommodationGetResponse + @Valid + AccommodationGetResponse accommodationGetResponse ) { public static CartGetResponse fromEntity( Cart cart, diff --git a/src/main/java/ybe/mini/travelserver/domain/cart/exception/CartErrorMessage.java b/src/main/java/ybe/mini/travelserver/domain/cart/exception/CartErrorMessage.java index 51acc37..a57d5ce 100644 --- a/src/main/java/ybe/mini/travelserver/domain/cart/exception/CartErrorMessage.java +++ b/src/main/java/ybe/mini/travelserver/domain/cart/exception/CartErrorMessage.java @@ -2,17 +2,18 @@ import lombok.AllArgsConstructor; import lombok.Getter; -import ybe.mini.travelserver.global.exception.ErrorMessage; import org.springframework.http.HttpStatus; +import ybe.mini.travelserver.global.exception.ErrorMessage; + import static org.springframework.http.HttpStatus.BAD_REQUEST; + @Getter @AllArgsConstructor public enum CartErrorMessage implements ErrorMessage { CART_ALREADY_EXIST(BAD_REQUEST, "해당 정보가 이미 장바구니에 담겨있습니다."), - CART_NOT_FOUND(BAD_REQUEST, "해당 ID의 장바구니 정보가 없습니다.") - ; + CART_NOT_FOUND(BAD_REQUEST, "해당 ID의 장바구니 정보가 없습니다."); private final HttpStatus status; private final String message; } \ No newline at end of file diff --git a/src/main/java/ybe/mini/travelserver/domain/cart/exception/CartExceptionHandler.java b/src/main/java/ybe/mini/travelserver/domain/cart/exception/CartExceptionHandler.java index 63dc2a3..95359fd 100644 --- a/src/main/java/ybe/mini/travelserver/domain/cart/exception/CartExceptionHandler.java +++ b/src/main/java/ybe/mini/travelserver/domain/cart/exception/CartExceptionHandler.java @@ -7,7 +7,8 @@ import ybe.mini.travelserver.domain.cart.controller.CartController; import ybe.mini.travelserver.global.exception.ProblemDetailCreator; -import static ybe.mini.travelserver.domain.cart.exception.CartErrorMessage.*; +import static ybe.mini.travelserver.domain.cart.exception.CartErrorMessage.CART_ALREADY_EXIST; +import static ybe.mini.travelserver.domain.cart.exception.CartErrorMessage.CART_NOT_FOUND; @RestControllerAdvice(basePackageClasses = CartController.class) public class CartExceptionHandler extends ProblemDetailCreator { diff --git a/src/main/java/ybe/mini/travelserver/domain/cart/repository/CartRepository.java b/src/main/java/ybe/mini/travelserver/domain/cart/repository/CartRepository.java index 57b945a..08be280 100644 --- a/src/main/java/ybe/mini/travelserver/domain/cart/repository/CartRepository.java +++ b/src/main/java/ybe/mini/travelserver/domain/cart/repository/CartRepository.java @@ -4,7 +4,6 @@ import ybe.mini.travelserver.domain.cart.entity.Cart; import java.util.List; -import java.util.Optional; public interface CartRepository extends JpaRepository { List findALLByMemberId(Long userId); diff --git a/src/main/java/ybe/mini/travelserver/domain/cart/service/CartService.java b/src/main/java/ybe/mini/travelserver/domain/cart/service/CartService.java index fb61813..b13fdc0 100644 --- a/src/main/java/ybe/mini/travelserver/domain/cart/service/CartService.java +++ b/src/main/java/ybe/mini/travelserver/domain/cart/service/CartService.java @@ -50,7 +50,6 @@ public CartCreateResponse createCart(Long userId, CartCreateRequest cartCreateRe return new CartCreateResponse(createdCart.getId()); } - // TODO @Transactional(readOnly = true) public List getMyCarts(Long userId) { return cartRepository.findALLByMemberId(userId).stream() @@ -61,10 +60,10 @@ public List getMyCarts(Long userId) { @Transactional public CartDeleteResponse deleteCart(Long cartId) { - cartRepository.findById(cartId) + Cart cart = cartRepository.findById(cartId) .orElseThrow(CartNotFoundException::new); - cartRepository.deleteById(cartId); - return new CartDeleteResponse(cartId); + cartRepository.deleteById(cart.getId()); + return new CartDeleteResponse(cart.getId()); } private Member getMemberById(Long id) { diff --git a/src/main/java/ybe/mini/travelserver/domain/member/dto/MypageRequest.java b/src/main/java/ybe/mini/travelserver/domain/member/dto/MypageRequest.java index 4541c01..c6e386e 100644 --- a/src/main/java/ybe/mini/travelserver/domain/member/dto/MypageRequest.java +++ b/src/main/java/ybe/mini/travelserver/domain/member/dto/MypageRequest.java @@ -1,8 +1,6 @@ package ybe.mini.travelserver.domain.member.dto; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.databind.PropertyNamingStrategies; -import com.fasterxml.jackson.databind.annotation.JsonNaming; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import ybe.mini.travelserver.domain.member.entity.Member; diff --git a/src/main/java/ybe/mini/travelserver/domain/member/dto/MypageResponse.java b/src/main/java/ybe/mini/travelserver/domain/member/dto/MypageResponse.java index ec1ee7b..be339d2 100644 --- a/src/main/java/ybe/mini/travelserver/domain/member/dto/MypageResponse.java +++ b/src/main/java/ybe/mini/travelserver/domain/member/dto/MypageResponse.java @@ -1,8 +1,6 @@ package ybe.mini.travelserver.domain.member.dto; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.databind.PropertyNamingStrategies; -import com.fasterxml.jackson.databind.annotation.JsonNaming; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import ybe.mini.travelserver.domain.member.entity.Member; diff --git a/src/main/java/ybe/mini/travelserver/domain/member/dto/MypageUpdateResponse.java b/src/main/java/ybe/mini/travelserver/domain/member/dto/MypageUpdateResponse.java index cadba8d..2253699 100644 --- a/src/main/java/ybe/mini/travelserver/domain/member/dto/MypageUpdateResponse.java +++ b/src/main/java/ybe/mini/travelserver/domain/member/dto/MypageUpdateResponse.java @@ -1,8 +1,6 @@ package ybe.mini.travelserver.domain.member.dto; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.databind.PropertyNamingStrategies; -import com.fasterxml.jackson.databind.annotation.JsonNaming; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import ybe.mini.travelserver.domain.member.entity.Member; diff --git a/src/main/java/ybe/mini/travelserver/domain/member/dto/SigninRequest.java b/src/main/java/ybe/mini/travelserver/domain/member/dto/SigninRequest.java index 638db93..c9cdf54 100644 --- a/src/main/java/ybe/mini/travelserver/domain/member/dto/SigninRequest.java +++ b/src/main/java/ybe/mini/travelserver/domain/member/dto/SigninRequest.java @@ -1,8 +1,6 @@ package ybe.mini.travelserver.domain.member.dto; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.databind.PropertyNamingStrategies; -import com.fasterxml.jackson.databind.annotation.JsonNaming; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import ybe.mini.travelserver.domain.member.entity.Member; diff --git a/src/main/java/ybe/mini/travelserver/domain/member/dto/SigninResponse.java b/src/main/java/ybe/mini/travelserver/domain/member/dto/SigninResponse.java index 8f48476..681814a 100644 --- a/src/main/java/ybe/mini/travelserver/domain/member/dto/SigninResponse.java +++ b/src/main/java/ybe/mini/travelserver/domain/member/dto/SigninResponse.java @@ -1,8 +1,6 @@ package ybe.mini.travelserver.domain.member.dto; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.databind.PropertyNamingStrategies; -import com.fasterxml.jackson.databind.annotation.JsonNaming; import jakarta.validation.constraints.NotBlank; import java.io.Serializable; diff --git a/src/main/java/ybe/mini/travelserver/domain/member/dto/SignupRequest.java b/src/main/java/ybe/mini/travelserver/domain/member/dto/SignupRequest.java index 9c199ad..28c64c0 100644 --- a/src/main/java/ybe/mini/travelserver/domain/member/dto/SignupRequest.java +++ b/src/main/java/ybe/mini/travelserver/domain/member/dto/SignupRequest.java @@ -1,8 +1,6 @@ package ybe.mini.travelserver.domain.member.dto; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.databind.PropertyNamingStrategies; -import com.fasterxml.jackson.databind.annotation.JsonNaming; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import ybe.mini.travelserver.domain.member.entity.Member; diff --git a/src/main/java/ybe/mini/travelserver/domain/member/dto/SignupResponse.java b/src/main/java/ybe/mini/travelserver/domain/member/dto/SignupResponse.java index b082312..89eaf86 100644 --- a/src/main/java/ybe/mini/travelserver/domain/member/dto/SignupResponse.java +++ b/src/main/java/ybe/mini/travelserver/domain/member/dto/SignupResponse.java @@ -1,8 +1,6 @@ package ybe.mini.travelserver.domain.member.dto; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.databind.PropertyNamingStrategies; -import com.fasterxml.jackson.databind.annotation.JsonNaming; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import ybe.mini.travelserver.domain.member.entity.Member; diff --git a/src/main/java/ybe/mini/travelserver/domain/member/exception/CanNotControlOtherMembersData.java b/src/main/java/ybe/mini/travelserver/domain/member/exception/CanNotControlOtherMembersData.java index bc33c44..1c4fb33 100644 --- a/src/main/java/ybe/mini/travelserver/domain/member/exception/CanNotControlOtherMembersData.java +++ b/src/main/java/ybe/mini/travelserver/domain/member/exception/CanNotControlOtherMembersData.java @@ -1,4 +1,4 @@ package ybe.mini.travelserver.domain.member.exception; -public class CanNotControlOtherMembersData extends RuntimeException{ +public class CanNotControlOtherMembersData extends RuntimeException { } diff --git a/src/main/java/ybe/mini/travelserver/domain/reservation/controller/ReservationController.java b/src/main/java/ybe/mini/travelserver/domain/reservation/controller/ReservationController.java index 90bbe88..b1ee9a9 100644 --- a/src/main/java/ybe/mini/travelserver/domain/reservation/controller/ReservationController.java +++ b/src/main/java/ybe/mini/travelserver/domain/reservation/controller/ReservationController.java @@ -29,7 +29,7 @@ public class ReservationController { @PreAuthorize(HAS_ROLE_USER) @PostMapping - public ResponseDto tryReservation ( + public ResponseDto tryReservation( @RequestBody ReservationCreateRequest createRequest, @AuthenticationPrincipal PrincipalDetails principalDetails ) { @@ -41,7 +41,7 @@ public ResponseDto tryReservation ( @PreAuthorize(HAS_ROLE_USER) @PostMapping("/from-cart") - public ResponseDto tryReservationFromCart ( + public ResponseDto tryReservationFromCart( @RequestBody @Valid ReservationCreateFromCartRequest createRequest, @AuthenticationPrincipal PrincipalDetails principalDetails ) { @@ -53,7 +53,7 @@ public ResponseDto tryReservationFromCart ( @PreAuthorize(HAS_ROLE_USER) @GetMapping - public ResponseDto> getMyReservations ( + public ResponseDto> getMyReservations( @AuthenticationPrincipal PrincipalDetails principalDetails ) { return new ResponseDto<>( diff --git a/src/main/java/ybe/mini/travelserver/domain/reservation/dto/ReservationCreateRequest.java b/src/main/java/ybe/mini/travelserver/domain/reservation/dto/ReservationCreateRequest.java index 0321509..ef9d070 100644 --- a/src/main/java/ybe/mini/travelserver/domain/reservation/dto/ReservationCreateRequest.java +++ b/src/main/java/ybe/mini/travelserver/domain/reservation/dto/ReservationCreateRequest.java @@ -1,7 +1,5 @@ package ybe.mini.travelserver.domain.reservation.dto; -import com.fasterxml.jackson.databind.PropertyNamingStrategies; -import com.fasterxml.jackson.databind.annotation.JsonNaming; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; import lombok.Builder; diff --git a/src/main/java/ybe/mini/travelserver/domain/reservation/dto/ReservationGetResponse.java b/src/main/java/ybe/mini/travelserver/domain/reservation/dto/ReservationGetResponse.java index dfcedcd..80c1883 100644 --- a/src/main/java/ybe/mini/travelserver/domain/reservation/dto/ReservationGetResponse.java +++ b/src/main/java/ybe/mini/travelserver/domain/reservation/dto/ReservationGetResponse.java @@ -2,8 +2,8 @@ import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Builder; -import ybe.mini.travelserver.domain.reservation.entity.Reservation; import ybe.mini.travelserver.domain.reservation.entity.PaymentType; +import ybe.mini.travelserver.domain.reservation.entity.Reservation; import ybe.mini.travelserver.domain.reservation_room.dto.ReservationRoomGetResponse; import java.io.Serializable; @@ -22,16 +22,16 @@ public record ReservationGetResponse( ) implements Serializable { - public static ReservationGetResponse fromEntity(Reservation reservation) { - return ReservationGetResponse.builder() - .id(reservation.getId()) - .reservationRooms( - Optional.ofNullable(reservation.getReservationRooms()) - .orElseGet(Collections::emptyList).stream() - .map(ReservationRoomGetResponse::fromEntity).toList() - ) - .createdAt(reservation.getCreatedAt()) - .paymentType(reservation.getPaymentType()) - .build(); - } + public static ReservationGetResponse fromEntity(Reservation reservation) { + return ReservationGetResponse.builder() + .id(reservation.getId()) + .reservationRooms( + Optional.ofNullable(reservation.getReservationRooms()) + .orElseGet(Collections::emptyList).stream() + .map(ReservationRoomGetResponse::fromEntity).toList() + ) + .createdAt(reservation.getCreatedAt()) + .paymentType(reservation.getPaymentType()) + .build(); + } } diff --git a/src/main/java/ybe/mini/travelserver/domain/reservation/entity/PaymentType.java b/src/main/java/ybe/mini/travelserver/domain/reservation/entity/PaymentType.java index 25d8fa3..a1c55ad 100644 --- a/src/main/java/ybe/mini/travelserver/domain/reservation/entity/PaymentType.java +++ b/src/main/java/ybe/mini/travelserver/domain/reservation/entity/PaymentType.java @@ -10,8 +10,7 @@ public enum PaymentType { KAKAO_PAY("카카오페이 결제"), CARD("카드 결제"), MOBILE("휴대폰 결제"), - ACCOUNT("계좌 이체") - ; + ACCOUNT("계좌 이체"); private final String name; diff --git a/src/main/java/ybe/mini/travelserver/domain/reservation/entity/Reservation.java b/src/main/java/ybe/mini/travelserver/domain/reservation/entity/Reservation.java index 25f52e8..6fc743b 100644 --- a/src/main/java/ybe/mini/travelserver/domain/reservation/entity/Reservation.java +++ b/src/main/java/ybe/mini/travelserver/domain/reservation/entity/Reservation.java @@ -15,8 +15,6 @@ import java.util.List; import java.util.Objects; -import static ybe.mini.travelserver.domain.reservation.entity.PaymentType.*; - @SuperBuilder @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @@ -39,7 +37,7 @@ public class Reservation extends BaseTimeEntity { orphanRemoval = true ) @Builder.Default - private List reservationRooms = new ArrayList<>(); + private final List reservationRooms = new ArrayList<>(); @Enumerated(EnumType.STRING) @Comment("예약 상태") diff --git a/src/main/java/ybe/mini/travelserver/domain/reservation/exception/ReservationErrorMessage.java b/src/main/java/ybe/mini/travelserver/domain/reservation/exception/ReservationErrorMessage.java index d4ea5bb..f88a458 100644 --- a/src/main/java/ybe/mini/travelserver/domain/reservation/exception/ReservationErrorMessage.java +++ b/src/main/java/ybe/mini/travelserver/domain/reservation/exception/ReservationErrorMessage.java @@ -12,8 +12,7 @@ public enum ReservationErrorMessage implements ErrorMessage { RESERVATION_NOT_FOUND(BAD_REQUEST, "해당 ID의 예약 정보가 없습니다."), - ROOM_STOCK_IS_EMPTY(BAD_REQUEST, "예약하려는 객실 상품이 이미 품절되었습니다.") - ; + ROOM_STOCK_IS_EMPTY(BAD_REQUEST, "예약하려는 객실 상품이 이미 품절되었습니다."); private final HttpStatus status; private final String message; } diff --git a/src/main/java/ybe/mini/travelserver/domain/reservation/repository/ReservationRepository.java b/src/main/java/ybe/mini/travelserver/domain/reservation/repository/ReservationRepository.java index cc4a9dc..29822d8 100644 --- a/src/main/java/ybe/mini/travelserver/domain/reservation/repository/ReservationRepository.java +++ b/src/main/java/ybe/mini/travelserver/domain/reservation/repository/ReservationRepository.java @@ -1,7 +1,6 @@ package ybe.mini.travelserver.domain.reservation.repository; import org.springframework.data.jpa.repository.JpaRepository; -import ybe.mini.travelserver.domain.member.entity.Member; import ybe.mini.travelserver.domain.reservation.entity.Reservation; import java.util.List; diff --git a/src/main/java/ybe/mini/travelserver/domain/reservation/service/ReservationService.java b/src/main/java/ybe/mini/travelserver/domain/reservation/service/ReservationService.java index a60b6bc..8d58b58 100644 --- a/src/main/java/ybe/mini/travelserver/domain/reservation/service/ReservationService.java +++ b/src/main/java/ybe/mini/travelserver/domain/reservation/service/ReservationService.java @@ -6,6 +6,8 @@ import org.springframework.transaction.annotation.Transactional; import ybe.mini.travelserver.domain.accommodation.entity.Accommodation; import ybe.mini.travelserver.domain.accommodation.repository.AccommodationRepository; +import ybe.mini.travelserver.domain.cart.entity.Cart; +import ybe.mini.travelserver.domain.cart.exception.CartNotFoundException; import ybe.mini.travelserver.domain.cart.repository.CartRepository; import ybe.mini.travelserver.domain.member.entity.Member; import ybe.mini.travelserver.domain.member.exception.MemberNotFoundException; @@ -64,7 +66,7 @@ private void isEnableReservation(ReservationRoom resRoom) { int restStock = getRestStock( resRoom.getRoom(), resRoom.getCheckIn(), resRoom.getCheckOut() ); - if(restStock==0) throw new RoomStockIsEmptyException(); + if (restStock == 0) throw new RoomStockIsEmptyException(); } private Integer getRestStock(Room room, LocalDate checkIn, LocalDate checkOut) { @@ -106,7 +108,7 @@ public Long deleteReservation(Long reservationId) { private List reservationRoomDtosToEntityList(List roomCreateRequests) { List reservationRooms = new ArrayList<>(); - for(ReservationRoomCreateRequest roomRequest : roomCreateRequests) { + for (ReservationRoomCreateRequest roomRequest : roomCreateRequests) { ReservationRoom reservationRoom = reservationRoomDtoToEntity(roomRequest); reservationRooms.add(reservationRoom); } @@ -155,8 +157,8 @@ private Member getMemberByEmail(String email) { } private void deleteCart(Long cartId) { - cartRepository.findById(cartId).orElseThrow(RuntimeException::new); //todo : CustomException, 민정님 구현 후 적용 - cartRepository.deleteById(cartId); + Cart cart = cartRepository.findById(cartId).orElseThrow(CartNotFoundException::new); + cartRepository.deleteById(cart.getId()); } } diff --git a/src/main/java/ybe/mini/travelserver/domain/reservation_room/dto/ReservationRoomGetResponse.java b/src/main/java/ybe/mini/travelserver/domain/reservation_room/dto/ReservationRoomGetResponse.java index 05bce07..595e803 100644 --- a/src/main/java/ybe/mini/travelserver/domain/reservation_room/dto/ReservationRoomGetResponse.java +++ b/src/main/java/ybe/mini/travelserver/domain/reservation_room/dto/ReservationRoomGetResponse.java @@ -1,8 +1,6 @@ package ybe.mini.travelserver.domain.reservation_room.dto; import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.databind.PropertyNamingStrategies; -import com.fasterxml.jackson.databind.annotation.JsonNaming; import lombok.Builder; import ybe.mini.travelserver.domain.accommodation.dto.AccommodationGetResponse; import ybe.mini.travelserver.domain.reservation_room.entity.ReservationRoom; @@ -11,7 +9,6 @@ import java.io.Serializable; import java.time.LocalDate; -import java.time.LocalDateTime; @Builder public record ReservationRoomGetResponse( @@ -27,15 +24,15 @@ public record ReservationRoomGetResponse( ) implements Serializable { - public static ReservationRoomGetResponse fromEntity(ReservationRoom reservationRoom) { - return ReservationRoomGetResponse.builder() - .id(reservationRoom.getId()) - .room(RoomGetResponse.fromEntity(reservationRoom.getRoom())) - .accommodation(AccommodationGetResponse.fromEntity(reservationRoom.getRoom().getAccommodation())) - .checkIn(reservationRoom.getCheckIn()) - .checkOut(reservationRoom.getCheckOut()) - .guestNumber(reservationRoom.getGuestNumber()) - .status(reservationRoom.getStatus()) - .build(); - } + public static ReservationRoomGetResponse fromEntity(ReservationRoom reservationRoom) { + return ReservationRoomGetResponse.builder() + .id(reservationRoom.getId()) + .room(RoomGetResponse.fromEntity(reservationRoom.getRoom())) + .accommodation(AccommodationGetResponse.fromEntity(reservationRoom.getRoom().getAccommodation())) + .checkIn(reservationRoom.getCheckIn()) + .checkOut(reservationRoom.getCheckOut()) + .guestNumber(reservationRoom.getGuestNumber()) + .status(reservationRoom.getStatus()) + .build(); + } } diff --git a/src/main/java/ybe/mini/travelserver/domain/reservation_room/entity/ReservationRoom.java b/src/main/java/ybe/mini/travelserver/domain/reservation_room/entity/ReservationRoom.java index a47e03f..4db9e44 100644 --- a/src/main/java/ybe/mini/travelserver/domain/reservation_room/entity/ReservationRoom.java +++ b/src/main/java/ybe/mini/travelserver/domain/reservation_room/entity/ReservationRoom.java @@ -11,9 +11,7 @@ import ybe.mini.travelserver.domain.room.entity.Room; import java.time.LocalDate; -import java.time.LocalDateTime; -import static ybe.mini.travelserver.domain.reservation_room.entity.ReservationRoomStatus.PAYED; import static ybe.mini.travelserver.domain.reservation_room.entity.ReservationRoomStatus.RESERVED; @SuperBuilder diff --git a/src/main/java/ybe/mini/travelserver/domain/reservation_room/entity/ReservationRoomStatus.java b/src/main/java/ybe/mini/travelserver/domain/reservation_room/entity/ReservationRoomStatus.java index 91b8d9a..2c640cf 100644 --- a/src/main/java/ybe/mini/travelserver/domain/reservation_room/entity/ReservationRoomStatus.java +++ b/src/main/java/ybe/mini/travelserver/domain/reservation_room/entity/ReservationRoomStatus.java @@ -7,8 +7,7 @@ @RequiredArgsConstructor public enum ReservationRoomStatus { RESERVED("예약됨"), - PAYED("결제됨") - ; + PAYED("결제됨"); private final String name; } diff --git a/src/main/java/ybe/mini/travelserver/domain/reservation_room/exception/ReservationRoomErrorMessage.java b/src/main/java/ybe/mini/travelserver/domain/reservation_room/exception/ReservationRoomErrorMessage.java index 9a88f70..11915bc 100644 --- a/src/main/java/ybe/mini/travelserver/domain/reservation_room/exception/ReservationRoomErrorMessage.java +++ b/src/main/java/ybe/mini/travelserver/domain/reservation_room/exception/ReservationRoomErrorMessage.java @@ -11,8 +11,7 @@ @AllArgsConstructor public enum ReservationRoomErrorMessage implements ErrorMessage { - RESERVATION_ROOM_NOT_FOUND(BAD_REQUEST, "해당 ID의 예약 객실 정보가 없습니다.") - ; + RESERVATION_ROOM_NOT_FOUND(BAD_REQUEST, "해당 ID의 예약 객실 정보가 없습니다."); private final HttpStatus status; private final String message; } diff --git a/src/main/java/ybe/mini/travelserver/domain/reservation_room/exception/ReservationRoomNotFoundException.java b/src/main/java/ybe/mini/travelserver/domain/reservation_room/exception/ReservationRoomNotFoundException.java index 8978b88..6f2bc5a 100644 --- a/src/main/java/ybe/mini/travelserver/domain/reservation_room/exception/ReservationRoomNotFoundException.java +++ b/src/main/java/ybe/mini/travelserver/domain/reservation_room/exception/ReservationRoomNotFoundException.java @@ -1,4 +1,4 @@ package ybe.mini.travelserver.domain.reservation_room.exception; -public class ReservationRoomNotFoundException extends RuntimeException{ +public class ReservationRoomNotFoundException extends RuntimeException { } diff --git a/src/main/java/ybe/mini/travelserver/domain/reservation_room/service/ReservationRoomService.java b/src/main/java/ybe/mini/travelserver/domain/reservation_room/service/ReservationRoomService.java index 4c19716..5e18b9a 100644 --- a/src/main/java/ybe/mini/travelserver/domain/reservation_room/service/ReservationRoomService.java +++ b/src/main/java/ybe/mini/travelserver/domain/reservation_room/service/ReservationRoomService.java @@ -4,8 +4,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import ybe.mini.travelserver.domain.reservation.repository.ReservationRepository; import ybe.mini.travelserver.domain.reservation.entity.Reservation; +import ybe.mini.travelserver.domain.reservation.repository.ReservationRepository; import ybe.mini.travelserver.domain.reservation_room.dto.ReservationRoomGetResponse; import ybe.mini.travelserver.domain.reservation_room.entity.ReservationRoom; import ybe.mini.travelserver.domain.reservation_room.exception.ReservationRoomNotFoundException; diff --git a/src/main/java/ybe/mini/travelserver/domain/room/service/RoomService.java b/src/main/java/ybe/mini/travelserver/domain/room/service/RoomService.java index 41773b6..b2389eb 100644 --- a/src/main/java/ybe/mini/travelserver/domain/room/service/RoomService.java +++ b/src/main/java/ybe/mini/travelserver/domain/room/service/RoomService.java @@ -9,10 +9,8 @@ import ybe.mini.travelserver.domain.room.entity.Room; import ybe.mini.travelserver.domain.room.repository.RoomRepository; import ybe.mini.travelserver.global.api.TourAPIService; -import ybe.mini.travelserver.global.util.Validation; import java.time.LocalDate; -import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -38,11 +36,11 @@ room, getRestStock(room, validateDateFormat(checkIn), validateDateFormat(checkOu private Integer getRestStock(Room room, LocalDate checkIn, LocalDate checkOut) { Optional roomOpt = roomRepository.findByRoomTypeId(room.getRoomTypeId()); - if(roomOpt.isEmpty()) return room.getStock(); + if (roomOpt.isEmpty()) return room.getStock(); List reservationRooms = reservationRoomRepository.findAllByRoomAndCheckInBetweenAndCheckOutBetween( - roomOpt.get(), checkIn, checkOut, checkIn, checkOut + roomOpt.get(), checkIn, checkOut, checkIn, checkOut ); return Math.max(0, room.getStock() - reservationRooms.size()); } diff --git a/src/main/java/ybe/mini/travelserver/domain/test/TestController.java b/src/main/java/ybe/mini/travelserver/domain/test/TestController.java index c94b5ed..7a6c5cf 100644 --- a/src/main/java/ybe/mini/travelserver/domain/test/TestController.java +++ b/src/main/java/ybe/mini/travelserver/domain/test/TestController.java @@ -5,9 +5,9 @@ import org.springframework.http.HttpStatus; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.bind.annotation.RequestBody; import ybe.mini.travelserver.global.common.ResponseDto; import ybe.mini.travelserver.global.security.PrincipalDetails; @@ -19,7 +19,7 @@ public class TestController { // "test" 응답 @GetMapping() - public ResponseDto test (@AuthenticationPrincipal PrincipalDetails principalDetails) { + public ResponseDto test(@AuthenticationPrincipal PrincipalDetails principalDetails) { return new ResponseDto<>(HttpStatus.OK.value(), "test"); } diff --git a/src/main/java/ybe/mini/travelserver/global/api/dto/AccommodationTourAPIResponse.java b/src/main/java/ybe/mini/travelserver/global/api/dto/AccommodationTourAPIResponse.java index 2205214..98cb05d 100644 --- a/src/main/java/ybe/mini/travelserver/global/api/dto/AccommodationTourAPIResponse.java +++ b/src/main/java/ybe/mini/travelserver/global/api/dto/AccommodationTourAPIResponse.java @@ -1,6 +1,7 @@ package ybe.mini.travelserver.global.api.dto; import ybe.mini.travelserver.global.api.dto.common.Response; + /** * 숙박 간단 정보 키워드 검색 * 키워드로 검색을하며 전체별 타입정보별 목록을 조회한다 diff --git a/src/main/java/ybe/mini/travelserver/global/common/ResponseDto.java b/src/main/java/ybe/mini/travelserver/global/common/ResponseDto.java index 006eca1..9eff3be 100644 --- a/src/main/java/ybe/mini/travelserver/global/common/ResponseDto.java +++ b/src/main/java/ybe/mini/travelserver/global/common/ResponseDto.java @@ -1,10 +1,6 @@ package ybe.mini.travelserver.global.common; -import com.fasterxml.jackson.databind.PropertyNamingStrategies; -import com.fasterxml.jackson.databind.annotation.JsonNaming; -import lombok.AllArgsConstructor; - -public record ResponseDto ( +public record ResponseDto( int status, T data ) { diff --git a/src/main/java/ybe/mini/travelserver/global/config/JpaConfig.java b/src/main/java/ybe/mini/travelserver/global/config/JpaConfig.java index 251ed1f..bf06279 100644 --- a/src/main/java/ybe/mini/travelserver/global/config/JpaConfig.java +++ b/src/main/java/ybe/mini/travelserver/global/config/JpaConfig.java @@ -1,11 +1,12 @@ package ybe.mini.travelserver.global.config; +import com.querydsl.jpa.impl.JPAQueryFactory; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; -import com.querydsl.jpa.impl.JPAQueryFactory; + @EnableJpaAuditing @Configuration public class JpaConfig { diff --git a/src/main/java/ybe/mini/travelserver/global/config/SecurityAccessDeniedHandler.java b/src/main/java/ybe/mini/travelserver/global/config/SecurityAccessDeniedHandler.java index 1abc371..6fd9b2b 100644 --- a/src/main/java/ybe/mini/travelserver/global/config/SecurityAccessDeniedHandler.java +++ b/src/main/java/ybe/mini/travelserver/global/config/SecurityAccessDeniedHandler.java @@ -2,18 +2,16 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.web.access.AccessDeniedHandler; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerExceptionResolver; @Component +@RequiredArgsConstructor public class SecurityAccessDeniedHandler implements AccessDeniedHandler { - HandlerExceptionResolver handlerExceptionResolver; - - public SecurityAccessDeniedHandler(HandlerExceptionResolver handlerExceptionResolver) { - this.handlerExceptionResolver = handlerExceptionResolver; - } + private final HandlerExceptionResolver handlerExceptionResolver; @Override public void handle( diff --git a/src/main/java/ybe/mini/travelserver/global/config/SecurityAuthenticationEntryPoint.java b/src/main/java/ybe/mini/travelserver/global/config/SecurityAuthenticationEntryPoint.java index b2149cf..52209db 100644 --- a/src/main/java/ybe/mini/travelserver/global/config/SecurityAuthenticationEntryPoint.java +++ b/src/main/java/ybe/mini/travelserver/global/config/SecurityAuthenticationEntryPoint.java @@ -2,19 +2,18 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.AuthenticationEntryPoint; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerExceptionResolver; @Component +@RequiredArgsConstructor public class SecurityAuthenticationEntryPoint implements AuthenticationEntryPoint { - HandlerExceptionResolver handlerExceptionResolver; + private final HandlerExceptionResolver handlerExceptionResolver; - public SecurityAuthenticationEntryPoint(HandlerExceptionResolver handlerExceptionResolver) { - this.handlerExceptionResolver = handlerExceptionResolver; - } @Override public void commence( diff --git a/src/main/java/ybe/mini/travelserver/global/exception/ErrorMessage.java b/src/main/java/ybe/mini/travelserver/global/exception/ErrorMessage.java index 4c0ef8c..bb546ff 100644 --- a/src/main/java/ybe/mini/travelserver/global/exception/ErrorMessage.java +++ b/src/main/java/ybe/mini/travelserver/global/exception/ErrorMessage.java @@ -5,5 +5,6 @@ public interface ErrorMessage { HttpStatus getStatus(); + String getMessage(); } \ No newline at end of file diff --git a/src/main/java/ybe/mini/travelserver/global/exception/dto/DTOErrorMessage.java b/src/main/java/ybe/mini/travelserver/global/exception/dto/DTOErrorMessage.java index 012f322..f960ad2 100644 --- a/src/main/java/ybe/mini/travelserver/global/exception/dto/DTOErrorMessage.java +++ b/src/main/java/ybe/mini/travelserver/global/exception/dto/DTOErrorMessage.java @@ -12,8 +12,7 @@ public enum DTOErrorMessage implements ErrorMessage { METHOD_ARGUMENT_NOT_VALID(BAD_REQUEST, "DTO 값이 유효하지 않습니다"), DATETIME_PARSE(BAD_REQUEST, "날짜 형식이 유효하지 않습니다"), - DATETIME_NOT_CURRENT_OR_FUTURE(BAD_REQUEST, "날짜가 현재 날짜보다 같거나 이후여야합니다.") - ; + DATETIME_NOT_CURRENT_OR_FUTURE(BAD_REQUEST, "날짜가 현재 날짜보다 같거나 이후여야합니다."); private final HttpStatus status; private final String message; diff --git a/src/main/java/ybe/mini/travelserver/global/util/Validation.java b/src/main/java/ybe/mini/travelserver/global/util/Validation.java index 05f0189..42fcf4e 100644 --- a/src/main/java/ybe/mini/travelserver/global/util/Validation.java +++ b/src/main/java/ybe/mini/travelserver/global/util/Validation.java @@ -1,20 +1,23 @@ package ybe.mini.travelserver.global.util; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import ybe.mini.travelserver.global.exception.dto.DateFormatNotCurrentOrFutureException; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class Validation { - public static final String datePattern = "yyyyMMdd"; + public static final String DATE_PATTERN = "yyyyMMdd"; public static LocalDate validateDateFormat(String dateString) throws DateTimeParseException { - DateTimeFormatter formatter = DateTimeFormatter.ofPattern(datePattern); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DATE_PATTERN); LocalDate date = LocalDate.parse(dateString, formatter); LocalDate nowDate = LocalDate.now(); - if(date.compareTo(nowDate) >= 0) return date; + if (!date.isBefore(nowDate)) return date; else throw new DateFormatNotCurrentOrFutureException(); } }