Skip to content

Commit

Permalink
refactor: DI 적용에 따른 member-api 모듈 CoffeeChatService, CoffeeChatContro…
Browse files Browse the repository at this point in the history
…ller 리팩토링
  • Loading branch information
mooncw committed May 1, 2024
1 parent becca7e commit df47fc5
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,6 @@ public ResponseEntity<ApiResponse<EnterCoffeeChatRoomResponse>> enterCoffeeChatR
return ResponseEntityFactory.toResponseEntity(ROOM_ENTRY_SUCCESSFUL, response);
}

@PostMapping("/coffeechat/rooms/{roomKey}")
public ResponseEntity<ApiResponse> leaveCoffeeChatRoom(
@Valid
@PathVariable
String roomKey
) {
coffeeChatService.leaveCoffeeChatRoom(roomKey);

return ResponseEntityFactory.toResponseEntity(COFFEE_CHAT_ROOM_LEAVE);
}

@GetMapping("/coffeechat/rooms/{roomKey}")
public ResponseEntity<ApiResponse<FindChatHistoryResponse>> findChatHistory(
@Valid
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,20 @@
package com.kernelsquare.memberapi.domain.coffeechat.service;

import com.kernelsquare.core.common_response.error.code.CoffeeChatErrorCode;
import com.kernelsquare.core.common_response.error.code.ReservationErrorCode;
import com.kernelsquare.core.common_response.error.exception.BusinessException;
import com.kernelsquare.domainmongodb.domain.coffeechat.repository.MongoChatMessageRepository;
import com.kernelsquare.domainmongodb.domain.coffeechat.repository.MongoChatMessageReader;
import com.kernelsquare.domainmysql.domain.coffeechat.command.CoffeeChatCommand;
import com.kernelsquare.domainmysql.domain.coffeechat.entity.ChatRoom;
import com.kernelsquare.domainmysql.domain.coffeechat.info.CoffeeChatInfo;
import com.kernelsquare.domainmysql.domain.coffeechat.repository.CoffeeChatRepository;
import com.kernelsquare.domainmysql.domain.coffeechat.repository.CoffeeChatStore;
import com.kernelsquare.domainmysql.domain.member.entity.Member;
import com.kernelsquare.domainmysql.domain.member.repository.MemberReader;
import com.kernelsquare.domainmysql.domain.reservation.entity.Reservation;
import com.kernelsquare.domainmysql.domain.reservation.repository.ReservationRepository;
import com.kernelsquare.domainmysql.domain.reservation.repository.ReservationReader;
import com.kernelsquare.memberapi.domain.auth.dto.MemberAdapter;
import com.kernelsquare.memberapi.domain.coffeechat.dto.*;
import com.kernelsquare.memberapi.domain.coffeechat.validation.CoffeeChatValidation;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

Expand All @@ -26,16 +23,16 @@
@Service
@RequiredArgsConstructor
public class CoffeeChatService {
private final CoffeeChatRepository coffeeChatRepository;
private final MongoChatMessageRepository mongoChatMessageRepository;
private final ReservationRepository reservationRepository;
private final CoffeeChatStore coffeeChatStore;
private final MongoChatMessageReader mongoChatMessageReader;
private final ReservationReader reservationReader;
private final MemberReader memberReader;

@Transactional
public CreateCoffeeChatRoomResponse createCoffeeChatRoom(CreateCoffeeChatRoomRequest createCoffeeChatRoomRequest) {
ChatRoom chatRoom = CreateCoffeeChatRoomRequest.toEntity(createCoffeeChatRoomRequest);

ChatRoom saveChatRoom = coffeeChatRepository.save(chatRoom);
ChatRoom saveChatRoom = coffeeChatStore.store(chatRoom);

return CreateCoffeeChatRoomResponse.from(saveChatRoom);
}
Expand All @@ -44,8 +41,7 @@ public CreateCoffeeChatRoomResponse createCoffeeChatRoom(CreateCoffeeChatRoomReq
public EnterCoffeeChatRoomResponse enterCoffeeChatRoom(EnterCoffeeChatRoomRequest enterCoffeeChatRoomRequest,
MemberAdapter memberAdapter) {

Reservation reservation = reservationRepository.findById(enterCoffeeChatRoomRequest.reservationId())
.orElseThrow(() -> new BusinessException(ReservationErrorCode.RESERVATION_NOT_FOUND));
Reservation reservation = reservationReader.find(enterCoffeeChatRoomRequest.reservationId());

ChatRoom chatRoom = reservation.getChatRoom();

Expand Down Expand Up @@ -77,18 +73,8 @@ public EnterCoffeeChatRoomResponse menteeEnter(EnterCoffeeChatRoomRequest enterC
return EnterCoffeeChatRoomResponse.of(enterCoffeeChatRoomRequest.articleTitle(), chatRoom);
}

@Transactional
public void leaveCoffeeChatRoom(String roomKey) {
ChatRoom chatRoom = coffeeChatRepository.findByRoomKey(roomKey)
.orElseThrow(() -> new BusinessException(CoffeeChatErrorCode.COFFEE_CHAT_ROOM_NOT_FOUND));

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();

//TODO 특정 채팅방의 유저 리스트가 필요하다면?
}

public FindChatHistoryResponse findChatHistory(String roomKey) {
List<FindMongoChatMessage> chatHistory = mongoChatMessageRepository.findAllByRoomKey(roomKey).stream()
List<FindMongoChatMessage> chatHistory = mongoChatMessageReader.findAllByRoomKey(roomKey).stream()
.map(FindMongoChatMessage::from)
.toList();

Expand Down

0 comments on commit df47fc5

Please sign in to comment.