-
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: 콜백 단건조회 api 응답값에 boolean isAssignedToSelf, String seniorPhoneNumber 추가 #104
Changes from 6 commits
1347710
f708d17
654c31d
838a742
7821be4
1e80213
aced866
8d72cb2
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package com.example.sinitto.callback.dto; | ||
|
||
import java.time.LocalDateTime; | ||
|
||
public record CallbackForSinittoResponse( | ||
Long callbackId, | ||
String seniorName, | ||
LocalDateTime postTime, | ||
String status, | ||
Long seniorId, | ||
boolean isAssignedToSelf, | ||
String seniorPhoneNumber | ||
) { | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
package com.example.sinitto.callback.service; | ||
|
||
import com.example.sinitto.callback.dto.CallbackForSinittoResponse; | ||
import com.example.sinitto.callback.dto.CallbackResponse; | ||
import com.example.sinitto.callback.dto.CallbackUsageHistoryResponse; | ||
import com.example.sinitto.callback.entity.Callback; | ||
|
@@ -228,12 +229,16 @@ public Page<CallbackUsageHistoryResponse> getCallbackHistoryOfGuard(Long memberI | |
.map(callback -> new CallbackUsageHistoryResponse(callback.getId(), callback.getSeniorName(), callback.getPostTime(), callback.getStatus())); | ||
} | ||
|
||
public CallbackResponse getCallback(Long callbackId) { | ||
public CallbackForSinittoResponse getCallbackForSinitto(Long memberId, Long callbackId) { | ||
|
||
Callback callback = callbackRepository.findById(callbackId) | ||
.orElseThrow(() -> new NotFoundException("해당 콜백 id에 해당하는 콜백이 없습니다.")); | ||
|
||
return new CallbackResponse(callback.getId(), callback.getSeniorName(), callback.getPostTime(), callback.getStatus(), callback.getSeniorId()); | ||
if (callback.getAssignedMemberId().equals(memberId)) { | ||
return new CallbackForSinittoResponse(callback.getId(), callback.getSeniorName(), callback.getPostTime(), callback.getStatus(), callback.getSeniorId(), true, callback.getSenior().getPhoneNumber()); | ||
} | ||
|
||
return new CallbackForSinittoResponse(callback.getId(), callback.getSeniorName(), callback.getPostTime(), callback.getStatus(), callback.getSeniorId(), false, ""); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 commentThe 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 commentThe 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를 보내주는 로직으로 작성해두었는데,
혹시 검증에 실패하더라도 response에 검증여부(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.
어라 그러네요; 한번 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.
저 페이지가 하나의 페이지로 구현하신거라서 이런 응답이 필요하다고 하시네요!
true/false
있으면 기존보다 API 호출을 줄일 수 있어서 시니또가 수락하기 할 때 더 빨리 페이지가 갱신되는 효과가 있을거 같습니다.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.
아래에 조금 더 자세한 설명으로 코멘트 달아놨지만 간단하게 보충하겠습니다!
콜백 상세 조회 페이지가 figma 상으로는 두 페이지(수락 전, 수락 후)지만 실제로는 같은 페이지내에서 현재 시니또가 콜백 요청을 수락했는지 아닌지에 따라 하단메뉴가 달라지는 방식으로 구현됐습니다.
이를 위해서는 현재 조회하고 있는 콜백 요청이 시니또가 수락한 것인지 아닌지에 대한 정보가 필요해 isAssignedToSelf 추가를 요청드렸습니다.
isAssignedToSelf가 false인 경우(현재 시니또가 수락하지 않은 콜백인 경우) 수락 전 페이지가 조회되고, true인 경우(현재 시니또가 수락한 콜백인 경우) 수락 후 페이지가 조회되도록 구현했습니다.