-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat/#52/요청받은 정산 관련 api 개발 #61
The head ref may contain hidden characters: "feat/#52/\uC694\uCCAD\uBC1B\uC740-\uC815\uC0B0-\uAD00\uB828-api-\uAC1C\uBC1C"
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! 가독성도 좋고 더 깔끔해진 것 같아요
마찬가지로 코멘트 확인 부탁드립니다~!
아 그리고 앞으로 브랜치 생성하실 때 develop
을 베이스로 해주시면 더 좋을 것 같아요!
review 후 수정사항이 발생하면 머지할 때 충돌나거나 꼬일 가능성이 있어서, 일단 머지한 후 다시 파는 게 충돌을 줄일 수 있다고 알고 있어요
급하게 머지 필요하신 건 말씀해주시면 바로 보도록 하겠습니다!!
|
||
private Long payRequestId; | ||
|
||
private boolean isComplete; // 유저가 돈 낸 정산의 완료 여부 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
앗 여기 response에서의 isComplete 는 정산 생성자가 생성한 정산이 해당 유저가 돈을 냄으로써 완료가 되었는지의 여부를 프론트단에게 알려주기 위해 추가한 필드입니다!!
저도 좀 헷갈리긴 하네요 하하 리펙토링시에 변수명을 변경해보거나 추가적인 조치를 해보겠습니당
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
통일된 구조로 되어있어서 읽기 쉬웠습니다
// TODO 1. 유저가 스페이스에 속하는 지 검증 | ||
validateIsUserInSpace(userId, spaceId); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
p1: 해당PayRequestTargetId가 user꺼가 맞는지 확인하는 과정이 있으면 좋을 것 같습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아하 이런 검증 로직이 있어도 좋을거같네요!! 코드 리펙토링 시에 추가해보겠습니다!!
// TODO 3. PayRequest의 완료 여부 파악 | ||
PayRequest payRequest = payRequestTargetById.getPayRequest(); | ||
boolean payRequestCompleteStatus = isPayRequestComplete(payRequest); | ||
if (payRequestCompleteStatus) { | ||
payRequest.changeCompleteStatus(true); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
p3: "완료 취소"와 같은 기능이 생길 수 있기 때문에, isPayRequestComplete(payRequest)
의 return 값이 false여도 동작 가능하게 수정하면 어떠한가 싶습니다.
물론 현재 기획상으로는 취소 기능이 없어 문제는 없어보이네요. 현재 로직 상 한번 completeStatus=true
가 되면 false가 되지 않는 다는 것을 인지하고 있으면 될 것 같습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
넵 현재 기획상으로 정산 요청에 대해 송금을 한 유저들이 다시 이것을 취소하는 플로우는 없는거같아 일단 이렇게 구현해봤습니다!
그런데 확장성을 고려하여 말씀해주신 플로우도 생각해볼수가 있군요!! 참고하겠습니당~~
// TODO 4. 정산 생성 | ||
payService.createPay(userId, spaceId, postPayCreateRequest); | ||
|
||
return new BaseResponse<>("정산 생성 성공"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
p2: response에 payRequestId를 넣어 주는 건 어떻게 생각하시나요
프론트 측에서 정산 생성 후 바로 정산 상세보기 화면으로 넘어가는 요구사항이 생기면 필요하다고 생각합니다.
다른 기능들에서도 "생성" API에 response로 성공 여부 뿐만 아니라 생성한 자원의 Id를 넘겨주는 걸 고려하면 좋을 것 같아요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
앗 post and get 구조를 위해서 id를 넘겨주는거도 좋다고 생각했지만, 프론트 측에서 정산 생성 후 바로 정산 상세보기 화면으로 넘어가는 플로우가 아니라 자신이 생성한 정산목록으로부터 해당 정산 id를 다시 알기 때문에 굳이 response로 넘겨줄필요가 있을까 싶어서 일단 빼봤습니다!
프론트단과 api 연동과정에서 서로 소통후에 생성 관련 api들의 response로 생성된 리소스의 id를 넘겨주는 방식을 고려해보겠습니다!!
private List<PayReceiveInfoDto> payReceiveInfoDtoListIncomplete = new ArrayList<>(); | ||
|
||
private List<PayReceiveInfoDto> payReceiveInfoDtoListComplete = new ArrayList<>(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
p2: 이름이 예뻤으면 좋겠어요
response body에 JSON으로 담겨서 프론트에서 읽어야하기 때문에, Dto와는 다르게 이름이 단순해도 괜찮다고 생각합니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
하하 변수명에 너무많은 의미를 담았나 싶네요 프론트분들이 읽을거니 단순화시키는것도 좋아보이네요! 리펙토링시에 참고하겠습니다!!
동의합니다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
리뷰 감사합니다!! 이전에 작업하던 브랜치들의 코드가 필요했어서 이전 pr의 내용들을 merge해서 작업을 진행했었는데, 말씀해주신 부분에 동의합니다!! 머지가 필요한 코드는 따로 얘기드리거나 알람설정을 해두는 방향으로 해보겠습니다!
|
||
private Long payRequestId; | ||
|
||
private boolean isComplete; // 유저가 돈 낸 정산의 완료 여부 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
앗 여기 response에서의 isComplete 는 정산 생성자가 생성한 정산이 해당 유저가 돈을 냄으로써 완료가 되었는지의 여부를 프론트단에게 알려주기 위해 추가한 필드입니다!!
저도 좀 헷갈리긴 하네요 하하 리펙토링시에 변수명을 변경해보거나 추가적인 조치를 해보겠습니당
// TODO 4. 정산 생성 | ||
payService.createPay(userId, spaceId, postPayCreateRequest); | ||
|
||
return new BaseResponse<>("정산 생성 성공"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
앗 post and get 구조를 위해서 id를 넘겨주는거도 좋다고 생각했지만, 프론트 측에서 정산 생성 후 바로 정산 상세보기 화면으로 넘어가는 플로우가 아니라 자신이 생성한 정산목록으로부터 해당 정산 id를 다시 알기 때문에 굳이 response로 넘겨줄필요가 있을까 싶어서 일단 빼봤습니다!
프론트단과 api 연동과정에서 서로 소통후에 생성 관련 api들의 response로 생성된 리소스의 id를 넘겨주는 방식을 고려해보겠습니다!!
// TODO 1. 유저가 스페이스에 속하는 지 검증 | ||
validateIsUserInSpace(userId, spaceId); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아하 이런 검증 로직이 있어도 좋을거같네요!! 코드 리펙토링 시에 추가해보겠습니다!!
// TODO 3. PayRequest의 완료 여부 파악 | ||
PayRequest payRequest = payRequestTargetById.getPayRequest(); | ||
boolean payRequestCompleteStatus = isPayRequestComplete(payRequest); | ||
if (payRequestCompleteStatus) { | ||
payRequest.changeCompleteStatus(true); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
넵 현재 기획상으로 정산 요청에 대해 송금을 한 유저들이 다시 이것을 취소하는 플로우는 없는거같아 일단 이렇게 구현해봤습니다!
그런데 확장성을 고려하여 말씀해주신 플로우도 생각해볼수가 있군요!! 참고하겠습니당~~
private List<PayReceiveInfoDto> payReceiveInfoDtoListIncomplete = new ArrayList<>(); | ||
|
||
private List<PayReceiveInfoDto> payReceiveInfoDtoListComplete = new ArrayList<>(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
하하 변수명에 너무많은 의미를 담았나 싶네요 프론트분들이 읽을거니 단순화시키는것도 좋아보이네요! 리펙토링시에 참고하겠습니다!!
Feat/#52/요청받은 정산 관련 api 개발
📝 요약
->요청받은 정산 중 현재 진행중인 정산과 완료된 정산을 구분하여 조회
이슈 번호 : #52
🔖 변경 사항
[refactor : 요청받은 정산 목록 조회 서비스단 코드 메서드 분리]
-> 이 커밋부터가 현재 pr 의 내용입니다!
✅ 리뷰 요구사항
현재 개발한 api의 플로우는 유저가 요청받은 정산에 대해 송금완료 처리 요청이 들어올 경우,
유저의 송금완료 처리 -> 송금 요청받은 정산의 완료 여부 확인 -> 송금 요청받은 정산의 완료 여부를 response로 전달
이렇게 구성되어 있습니다
아직 화면설계서에는 없으나 추후에 정산 요청을 받은 모든 유저들이 송금 완료 처리 요청을 보낼 경우, 해당 정산에 대한 완료 여부를 프론트단에
알려주기 위해 response를 success 메시지로만 구성할까하다가 정산의 완료여부를 포함하는 것으로 수정했습니다
혹시 response 구성에 대해 다른 의견 있으시면 리뷰 남겨주세요!!
📸 확인 방법 (선택)
이 기능도 또한 아직 테스트 코드를 작성하지는 못했습니다
postman을 통해서 정산 생성, 정산 완료 처리, 정산 목록 조회 api를 섞어가며 db에 들어오는 값을 확인한 결과 문제는 없어 보입니다!!
빠르게 테스트 코드도 작성해보겠습니당
📌 PR 진행 시 이러한 점들을 참고해 주세요