Skip to content

Commit

Permalink
Merge pull request #109 from Me1tingPot/feature/#108
Browse files Browse the repository at this point in the history
feat : 채팅방 나가기 기능 구현
  • Loading branch information
yewonahn authored Jun 29, 2024
2 parents ac55c0f + e32126f commit 30f1d5a
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,21 @@ public ResponseEntity<ResponseData> updateAlarmStatus(
@ApiResponse(responseCode = "BAD_REQUEST", description = "채팅방 메세지 조회 실패")
})
public ResponseEntity<ResponseData<ChatMessagePageResponse>> getChatMessage(
@CurrentUser Account user,
@PathVariable("chatRoomId") Long chatRoomId,
@RequestParam(name = "page") int page,
@RequestParam(name = "size") int size
) {
return ResponseData.toResponseEntity(CHAT_MESSAGE_GET_SUCCESS, chatRoomQueryService.getChatMessages(chatRoomId, page, size));
return ResponseData.toResponseEntity(CHAT_MESSAGE_GET_SUCCESS, chatRoomQueryService.getChatMessages(user.getId(), chatRoomId, page, size));
}

@DeleteMapping("/{chatRoomId}")
public ResponseEntity<ResponseData> deleteChatRoomUser(
@CurrentUser Account user,
@PathVariable Long chatRoomId
) {
chatRoomService.deleteChatRoomUser(user.getId(), chatRoomId);
return ResponseData.toResponseEntity(chatRoomService.deleteChatRoomUser(user.getId(), chatRoomId));
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package meltingpot.server.chat.dto;

import lombok.Builder;
import meltingpot.server.domain.entity.chat.ChatRoomUser;
import org.springframework.data.domain.Slice;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public class ChatRoomQueryService {
private final PartyRepository partyRepository;

// [CHECK] 1. slice or page or list 2. PageResponse api
public ChatMessagePageResponse getChatMessages(Long chatRoomId, int page, int size) {
public ChatMessagePageResponse getChatMessages(Long userId, Long chatRoomId, int page, int size) {
ChatRoom chatRoom = chatRoomRepository.findById(chatRoomId)
.orElseThrow(() -> new ResourceNotFoundException(CHAT_ROOM_NOT_FOUND));

Expand Down
13 changes: 13 additions & 0 deletions src/main/java/meltingpot/server/chat/service/ChatRoomService.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@

import lombok.RequiredArgsConstructor;
import meltingpot.server.chat.dto.ChatRoomAlarmUpdateRequest;
import meltingpot.server.domain.entity.chat.ChatMessage;
import meltingpot.server.domain.entity.chat.ChatRoomUser;
import meltingpot.server.domain.repository.chat.ChatMessageRepository;
import meltingpot.server.domain.repository.chat.ChatRoomUserRepository;
import meltingpot.server.exception.ResourceNotFoundException;
import meltingpot.server.util.ResponseCode;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

import static meltingpot.server.util.ResponseCode.CHAT_ROOM_NOT_FOUND;

@Service
Expand All @@ -22,6 +26,15 @@ public ResponseCode updateAlarmStatus(Long userId, ChatRoomAlarmUpdateRequest re
.orElseThrow(() -> new ResourceNotFoundException(CHAT_ROOM_NOT_FOUND));
chatRoomUser.toggleAlarm();
chatRoomUserRepository.save(chatRoomUser);

return ResponseCode.CHAT_ALARM_UPDATE_SUCCESS;
}

public ResponseCode deleteChatRoomUser(Long userId, Long chatRoomId) {
ChatRoomUser chatRoomUser = chatRoomUserRepository.findChatRoomUserByUserIdAndChatRoomId(userId, chatRoomId)
.orElseThrow(() -> new ResourceNotFoundException(CHAT_ROOM_NOT_FOUND));
chatRoomUserRepository.deleteById(chatRoomUser.getId());

return ResponseCode.CHAT_ROOM_USER_DELETE_SUCCESS;
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
package meltingpot.server.domain.repository.chat;

import meltingpot.server.domain.entity.chat.ChatMessage;
import meltingpot.server.domain.entity.chat.ChatRoom;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Slice;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.Optional;

public interface ChatMessageRepository extends JpaRepository<ChatMessage, Long> {
Slice<ChatMessage> findAllByChatRoomId(Long chatRoomId, PageRequest pageRequest);
}
1 change: 1 addition & 0 deletions src/main/java/meltingpot/server/util/ResponseCode.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ public enum ResponseCode {
SOCKET_TOKEN_GET_SUCCESS(OK, "소켓 토큰 조회 성공"),
POST_LIST_FETCH_SUCCEESS(OK,"게시글 목록 불러오기 성공"),
POST_DETAIL_FETCH_SUCCEESS(OK,"게시글 내용 불러오기 성공"),
CHAT_ROOM_USER_DELETE_SUCCESS(OK, "채팅방 나가기 성공"),

CHAT_ALARM_UPDATE_SUCCESS(OK, "채팅 알림 설정 수정 성공"),
CHAT_DETAIL_GET_SUCCESS(OK, "채팅방 상단 조회 성공"),
Expand Down

0 comments on commit 30f1d5a

Please sign in to comment.