Skip to content
This repository has been archived by the owner on Jan 15, 2024. It is now read-only.

Commit

Permalink
Merge pull request #82 from Mini-Team-6/feature/#80-payment-logic-update
Browse files Browse the repository at this point in the history
Feature/#80 payment logic update
  • Loading branch information
ypd06021 authored Nov 27, 2023
2 parents 2e74b58 + 5a5fb79 commit aae7c05
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -67,19 +67,14 @@ private Member getMemberById(Long id) {
.orElseThrow(RuntimeException::new);
}

private Room getRoomById(Long id) {
return roomRepository.findById(id)
.orElseThrow(RuntimeException::new);
}

private Accommodation createAccommodationById(Long accommodationId) {
Accommodation accommodation = tourAPIService.bringAccommodation(accommodationId, "_");
return accommodationRepository.save(accommodation);
return getOrSaveAccommodation(accommodation);
}

private Room createRoomById(Long accommodationId, Long roomId) {
Room room = tourAPIService.bringRoom(accommodationId, roomId);
return roomRepository.save(room);
return getOrSaveRoom(room);
}

private Cart createCart(CartCreateRequest cartCreateRequest, Room room, Member member) {
Expand All @@ -92,4 +87,14 @@ private Cart createCart(CartCreateRequest cartCreateRequest, Room room, Member m
.build();
}

private Room getOrSaveRoom(Room room) {
return roomRepository.findByRoomTypeId(room.getRoomTypeId())
.orElseGet(() -> roomRepository.save(room));
}

private Accommodation getOrSaveAccommodation(Accommodation accommodation) {
return accommodationRepository.findById(accommodation.getId())
.orElseGet(() -> accommodationRepository.save(accommodation));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import ybe.mini.travelserver.domain.reservation_room.dto.ReservationRoomGetResponse;
import ybe.mini.travelserver.domain.reservation_room.service.ReservationRoomService;
Expand All @@ -18,6 +19,7 @@ public class ReservationRoomController {

private final ReservationRoomService reservationRoomService;

@PreAuthorize("hasRole('ROLE_USER')")
@GetMapping("/{reservationId}")
public ResponseDto<List<ReservationRoomGetResponse>> getReservationRoomsByReserveId(
@PathVariable Long reservationId
Expand All @@ -28,7 +30,8 @@ public ResponseDto<List<ReservationRoomGetResponse>> getReservationRoomsByReserv
reservationRoomService.getReservationRoomsFromReservation(reservationId)
);
}


@PreAuthorize("hasRole('ROLE_USER')")
@DeleteMapping
public ResponseDto<Long> deleteReservationRoom(
@RequestParam Long reservationId,
Expand Down
8 changes: 4 additions & 4 deletions src/test/http/cart.http
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwiaWF0I


### 생성
POST http://localhost:8080/temp/carts
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwiaWF0IjoxNzAxMDcwNDMwLCJleHAiOjE3MDEwNzIyMzAsImVtYWlsIjoib2tqYWVvb2s5OEBnbWFpbC5jb20ifQ.E22GEGpqrxTfN9MXXD-8MRXeaUnEEc7yyJ5le8WbXY4
POST http://localhost:8080/carts
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwiaWF0IjoxNzAxMDczNTUxLCJleHAiOjE3MDEwNzUzNTEsImVtYWlsIjoib2tqYWVvb2s5OEBnbWFpbC5jb20iLCJwYXNzd29yZCI6IntiY3J5cHR9JDJhJDEwJERBdjM5S1c2RFVSVzN1djh4eEFQR2U3MEliUkJPLmg2QkNtWkk0TEw5RTd5WFhubjFMYS9XIiwibmFtZSI6Im9ramFlb29rIn0.SJc-7hny0rnn95St-X1yS2YLhqloDUS7Yr2Xnex0fL4
Content-Type: application/json

{
"roomTypeId": 11430,
"accommodationId": 142785,
"guestNumber": 1,
"checkIn": "2023-11-20 00:00",
"checkOut": "2023-11-21 00:00"
"checkIn": "2023-11-20",
"checkOut": "2023-11-21"
}
30 changes: 25 additions & 5 deletions src/test/http/reservation.http
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
### 예약 생성
POST http://localhost:8080/reservations
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwiaWF0IjoxNzAxMDY3MTg3LCJleHAiOjE3MDEwNjg5ODcsImVtYWlsIjoib2tqYWVvb2s5OEBnbWFpbC5jb20ifQ.Xbds062YfqCfbIiop7JYNSZDLB712OXF6BAWkZV5FyU
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwiaWF0IjoxNzAxMDczNTUxLCJleHAiOjE3MDEwNzUzNTEsImVtYWlsIjoib2tqYWVvb2s5OEBnbWFpbC5jb20iLCJwYXNzd29yZCI6IntiY3J5cHR9JDJhJDEwJERBdjM5S1c2RFVSVzN1djh4eEFQR2U3MEliUkJPLmg2QkNtWkk0TEw5RTd5WFhubjFMYS9XIiwibmFtZSI6Im9ramFlb29rIn0.SJc-7hny0rnn95St-X1yS2YLhqloDUS7Yr2Xnex0fL4

{
"paymentType": "CARD",
Expand All @@ -17,20 +17,40 @@ Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwiaWF0I
]
}

### 예약 생성 장바구니
POST http://localhost:8080/reservations/from-cart
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwiaWF0IjoxNzAxMDczNTUxLCJleHAiOjE3MDEwNzUzNTEsImVtYWlsIjoib2tqYWVvb2s5OEBnbWFpbC5jb20iLCJwYXNzd29yZCI6IntiY3J5cHR9JDJhJDEwJERBdjM5S1c2RFVSVzN1djh4eEFQR2U3MEliUkJPLmg2QkNtWkk0TEw5RTd5WFhubjFMYS9XIiwibmFtZSI6Im9ramFlb29rIn0.SJc-7hny0rnn95St-X1yS2YLhqloDUS7Yr2Xnex0fL4

{
"paymentType": "CARD",
"cardIds": [3,4],
"reservationRooms" : [
{
"accommodationId": 142785,
"accommodationName": "가락관광호텔",
"roomTypeId": 11430,
"checkIn": "2022-01-01 14:00",
"checkOut": "2022-01-02 11:00",
"guestNumber": 2
}
]
}



### 나의 예약 조회
GET http://localhost:8080/temp/reservations
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwiaWF0IjoxNzAxMDU4NDc0LCJleHAiOjE3MDEwNjAyNzQsImVtYWlsIjoib2tqYWVvb2s5OEBnbWFpbC5jb20ifQ.dWNu-q6QKED1cNmrS8mXG5sWo15gl-7m-859eHAIzkE
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwiaWF0IjoxNzAxMDIyMDAzLCJleHAiOjE3MDEwMjM4MDMsImVtYWlsIjoib2tqYWVvb2s5OEBnbWFpbC5jb20ifQ.dnY4hXXEjMkybH1gwaxL9MbQkeAabZczI5S9SzaHxLM


### 예약 결제
POST http://localhost:8080/temp/reservations/22/payment
POST http://localhost:8080/reservations/1/payment
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwiaWF0IjoxNzAxMDU4NDc0LCJleHAiOjE3MDEwNjAyNzQsImVtYWlsIjoib2tqYWVvb2s5OEBnbWFpbC5jb20ifQ.dWNu-q6QKED1cNmrS8mXG5sWo15gl-7m-859eHAIzkE
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwiaWF0IjoxNzAxMDEwNDU4LCJleHAiOjE3MDEwMTIyNTgsImVtYWlsIjoib2tqYWVvb2s5OEBnbWFpbC5jb20ifQ.c5NKrqgVNj_CKLS2naYTx7p775vyAI1rMh_QwGRdv_Q

### 예약 취소
DELETE http://localhost:8080/temp/reservations/2
DELETE http://localhost:8080/reservations/2
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwiaWF0IjoxNzAwOTc5NTI2LCJleHAiOjE3MDA5ODEzMjYsImVtYWlsIjoib2tqYWVvb2s5OEBnbWFpbC5jb20ifQ.kcCZ2Kip4W6Ac_ZDbHP8iSp3oFsV3uzhcw066XGC6ks

0 comments on commit aae7c05

Please sign in to comment.