Skip to content

Commit

Permalink
Merge pull request #71 from Room-Fit/64-feature
Browse files Browse the repository at this point in the history
핏글 조회하기 API와 채팅방 속한 사용자 조회API 합쳐서 채팅방 상세정보 API 추가 요청
  • Loading branch information
toothlessdev authored Jan 29, 2025
2 parents 05ab1f2 + eaf46fe commit 51dcef2
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@ public interface ChatRoomService {

PaginationResponse<MessageDTO.Response> readMessageByRoomId(Long roomId, Long lastMessageId, int pageSize);
List<ChatRoomDTO.Response> readAllChatRooms(String type);
ChatRoomDTO.DetailsResponse readChatRoomDetails(Long roomId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
import com.roomfit.be.chat.infrastructure.ChatRoomRepository;
import com.roomfit.be.global.response.PaginationResponse;
import com.roomfit.be.global.event.EventPublisher;
import com.roomfit.be.participation.application.ParticipationService;
import com.roomfit.be.participation.application.dto.ParticipantDTO;
import com.roomfit.be.participation.application.event.JoinAsHostEvent;
import com.roomfit.be.participation.application.event.JoinAsParticipantEvent;
import lombok.RequiredArgsConstructor;
Expand All @@ -22,6 +24,7 @@
public class ChatRoomServiceImpl implements ChatRoomService {

private final ChatRoomRepository chatRepository;
private final ParticipationService participationService;
private final EventPublisher eventPublisher;
@Override
public ChatRoomDTO.Response createRoom(Long userId, ChatRoomDTO.Create request) {
Expand Down Expand Up @@ -65,6 +68,13 @@ public List<ChatRoomDTO.Response> readAllChatRooms(String type) {
.toList();
}

public ChatRoomDTO.DetailsResponse readChatRoomDetails(Long roomId){
ChatRoom chatRoom = chatRepository.findById(roomId)
.orElseThrow();
List<ParticipantDTO> participants = participationService.readParticipantsInChatRoom(roomId);

return ChatRoomDTO.DetailsResponse.of(chatRoom, participants);
}
private ChatRoom createGroupRoom(ChatRoomDTO.Create request){
return ChatRoom.createGroupRoom(request.getName(), request.getDescription(), request.getDormitory(), request.getMaxQuota());
}
Expand Down
33 changes: 33 additions & 0 deletions src/main/java/com/roomfit/be/chat/application/dto/ChatRoomDTO.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package com.roomfit.be.chat.application.dto;

import com.roomfit.be.chat.domain.ChatRoom;
import com.roomfit.be.participation.application.dto.ParticipantDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

public class ChatRoomDTO {

@Data
Expand Down Expand Up @@ -56,4 +59,34 @@ public static class Leave{
Long roomId;
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class DetailsResponse {

Long id;
String name;
String description;
String type;
String status;
Integer maxQuota;
Integer currentQuota;
String dormitory;
List<ParticipantDTO> participants;

public static DetailsResponse of(ChatRoom chatRoom, List<ParticipantDTO> participants) {
return DetailsResponse.builder()
.id(chatRoom.getId())
.name(chatRoom.getName())
.description(chatRoom.getDescription())
.type(chatRoom.getType().name())
.status(chatRoom.getStatus().name())
.maxQuota(chatRoom.getMaxQuota())
.currentQuota(chatRoom.getCurrentQuota())
.dormitory(chatRoom.getDormitory())
.participants(participants)
.build();
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.roomfit.be.chat.infrastructure.aop;
package com.roomfit.be.chat.infrastructure.aspect;

import com.roomfit.be.chat.application.dto.MessageDTO;
import com.roomfit.be.chat.infrastructure.MessageRepository;
Expand Down
15 changes: 15 additions & 0 deletions src/main/java/com/roomfit/be/global/config/RedisConfig.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.roomfit.be.global.config;

import com.roomfit.be.auth.domain.AuthToken;
import com.roomfit.be.auth.domain.VerificationCode;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
Expand Down Expand Up @@ -52,6 +53,20 @@ public ReactiveRedisTemplate<String, VerificationCode> verificationCodeRedisTemp
return reactiveRedisTemplate(connectionFactory, VerificationCode.class);
}

@Bean
@Qualifier("authTokenRedisTemplate")
public RedisTemplate<String, AuthToken> AuthTokenRedisTemplate(
RedisConnectionFactory connectionFactory) {

RedisTemplate<String, AuthToken> template = new RedisTemplate<>();
template.setConnectionFactory(connectionFactory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new Jackson2JsonRedisSerializer<>(AuthToken.class));
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(AuthToken.class));
return template;
}

@Bean
public RedisTemplate<String, Object> redisTemplate(
RedisConnectionFactory connectionFactory) {
Expand Down

0 comments on commit 51dcef2

Please sign in to comment.