TIL - 장고 심화 프로젝트 중간 상황
오늘은 merging작업에 팀원들이 하루종일 맘고생을.. (묭님 : 어? 금지입니다)
우리 git branch전략은 developbranch(머지담당: 나) / admin_developbranch(머지담당:묭님) 각각 나누어서 진행을 했는데
developbranch에는 예약, 숙소 상세조회, 리뷰, 유저, 마이페이지 기능이었고
admin_developbranch는 숙소 crud, 예약자 명단 조회 등의 기능(관리자만 사용 가능한)이었는데
app은 users와 hotels 단 2개 밖에 없다보니 branch를 나누어서 conflict를 해결하고 merge해도 각자 로컬에서 pull을 하니
충돌이 많이 생겼다. 규모가 작은 프로젝트인데 사람은 다섯명이니 같은 폴더를 작업하게 되어서 자꾸 엄청난 충돌들이 나는 건 당연하긴 함..
=> 그래서 생각한 방법이 merge브랜치를 하나 더 만들어서 거기에 디벨롭브랜치를 병합하는 것 (1명만 고생하자?)
근데 이 방법 또한 충돌이 엄청났다. 이유는 조금 더 알아봐야 할 것 같다.
차라리 app을 더 세분화해서 각자 작업을 하거나 아예 같은 폴더를 건드리지 않는 방식도 다음 프로젝트 때 생각해봐야겠다.
def get(self, request, booked_id):
room_review = get_object_or_404(Rooms, id=booked_id) #booked_id에 해당하는 숙소
serializer = RoomSerializer(room_review)
return Response(serializer.data, status=status.HTTP_200_OK)
def post(self, request, booked_id):
book = get_object_or_404(Book, id=booked_id) #booked_id에 해당하는 예약
if book.user_id == request.user.id: #booked_id에 해당하는 예약자만 리뷰달 수 있게
serializer = ReviewCreateSerializer(data=request.data)
if serializer.is_valid(raise_exception=True):
serializer.save(room = book.room, user=request.user, booked=book)
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
return Response("권한이 없습니다.", status=status.HTTP_401_UNAUTHORIZED)
오늘 나름 고심해서 작성한 코드! room_id를 따로 받지않고, 외래키로 참조하고 있는 booked_id만을 받아서
해당하는 숙소와 해당 숙소를 예약한 예약자만 리뷰를 달 수 있게 하였다. 기능 구현이 생각보다 빨리 끝난덕분에 추가기능도 생각해보게 되었다.
내가 맡은 부분의 권한 설정, 예외처리, 기능구현은 거의 마쳤는데 해보고싶은 기능이..
바로 결제 및 포인트 적립..! & 예약 취소 시 수수료 등 결제 관련에 관한 기능들이었다.
튜터님들에게 조언을 조금 물어서 한번 해보기로(테스트파일에 열심히 삽질) 했다.
현재 새벽.. .. .. 삽질의 삽질 끝에!!! API연동 성공했고, 결제 성공 시 페이지처리가 안되었는데 그 부분도 해결됐다.
또한 DB에 결제 금액 및 포인트도 적립가능하게는 했는데, 우리 프로젝트에 연결시키려면 이제 시작인 느낌
API 연동, 현재 자동으로 하드코딩된 값들이 들어가는데 이 부분을 실 구매자명, 숙소 명, 금액등으로 바꾸는게 목표
주문번호는 자동으로 랜덤 생성되며, uniqe값으로 설정되어있어서 readonly 설정으로 바꾸었다.
입력한 금액과 상품명이 오른쪽란에 뜨는 것을 볼 수 있다.
실제 토스에 가입된 번호와 생년월일을 입력하면 핸드폰으로 알림이 전송되고 알림을 클릭해서 결제를 누르면
(나는 테스트키로 하고 있기 때문에 실결제 적용되지 않음)
결제 성공페이지가 render된다. 모든 data가 불러와지는 것이 마음에 들지 않아서
좀 더 직관적이게 바꿔보았다.
payment모델을 만들어서 amount(결제 금액), supplied_amount(세금을 제외한 결제금액), point(결제 금액의 3%) 필드를 작성해보았고 DB에 저장도 잘 된다.(1번째는 포인트가 결제금액의 5%였음)
좀 더 공부해서 연동하는 방법에 대해 자세하게 포스팅도 해보는게 목표
'내일배움캠프 > 내일배움캠프 TIL' 카테고리의 다른 글
내일배움캠프 TIL 45일차 (0) | 2023.05.13 |
---|---|
내일배움캠프 TIL 44일차 (0) | 2023.05.12 |
내일배움캠프 TIL 42일차 (0) | 2023.05.10 |
내일배움캠프 TIL 41일차 (4) | 2023.05.08 |
내일배움캠프 TIL 40일차 (0) | 2023.05.06 |