Skip to content
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

[fix #161] 채팅 요청 시 크레딧 감소 안되는 오류 해결 #162

Merged
merged 5 commits into from
Nov 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ public static CreateChatInquiryResponse toCreateChatInquiryResponse(
chatInquiry.getId(),
chatInquiry.getMessage(),
InquiryStatus.PENDING.getLabel(),
chatInquiry.getInquirer().getCredit(),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

채팅 요청 성공 응답에 잔여 크래딧을 추가하신 이유가 무엇인가요? 궁금해서 질문드립니다!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

채팅 요청 시 크레딧이 제대로 차감됐는지, 잔여 크레딧은 얼마인지 유저에게 응답해줘야 할 것 같아서요! 화면 UI 상으로도 필요하다고 생각합니다

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그렇군요, 지금 해당 디자인 UI 설계가 되어있나요? UI 설계에 따라 약간 불필요하다는 느낌도 조금 드네요!

new MemberInfo(
answerer.getId(),
answerer.getNickname(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ public record CreateChatInquiryResponse(
Long chatInquiryId,
String inquiryMessage,
String inquiryStatus,
int credit,
MemberInfo chatPartner
) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,14 @@ public class ChatInquiryService {
public CreateChatInquiryResponse createChatInquiry(CreateChatInquiryRequest request, Member inquirer) {
QuestionPost questionPost = getQuestionPostById(request.questionPostId());
Member answerer = getMemberById(request.answererId());

ChatInquiry chatInquiry = chatInquiryRepository.save(
ChatInquiryMapper.toChatInquiry(questionPost, inquirer, answerer, request.inquiryMessage())
);

memberRepository.save(inquirer);
creditHistoryService.saveChatCreditHistory(CreditType.CHAT_REQUEST, inquirer);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

알림 이벤트 전으로 옮겨주셔서 좋네요 👍

eventPublisher.publishEvent(
new NotificationEvent(NotificationType.CHAT_REQUEST, chatInquiry.getId(), inquirer.getId(), answerer)
);
creditHistoryService.saveChatCreditHistory(CreditType.CHAT_REQUEST, inquirer);

return ChatInquiryMapper.toCreateChatInquiryResponse(chatInquiry);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ void teardown() {
@Test
void createChatInquiry() throws Exception {
//given
int previousCredit = loginMember.getCredit();
Member answerer = memberRepository.save(MemberFixture.member5());
QuestionPost questionPost = questionPostRepository.save(QuestionPostFixture.questionPost(loginMember));
CreateChatInquiryRequest request = new CreateChatInquiryRequest(
Expand All @@ -79,7 +80,8 @@ void createChatInquiry() throws Exception {
.content(toJson(request))
.contentType(APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(jsonPath("$.inquiryStatus").value(InquiryStatus.PENDING.getLabel())) // 내림차순
.andExpect(jsonPath("$.inquiryStatus").value(InquiryStatus.PENDING.getLabel()))
.andExpect(jsonPath("$.credit").value(previousCredit - CHAT_REWARD))
.andDo(MockMvcResultHandlers.print());
}

Expand Down