Skip to content

Commit 7233757

Browse files
committed
Fix: ChatRoom 관련 코드 변경
1 parent 216a5e2 commit 7233757

File tree

3 files changed

+33
-6
lines changed

3 files changed

+33
-6
lines changed

src/main/java/cmf/commitField/domain/chat/chatRoom/controller/ChatRoomController.java

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package cmf.commitField.domain.chat.chatRoom.controller;
22

3+
import cmf.commitField.domain.File.service.FileService;
34
import cmf.commitField.domain.chat.chatRoom.controller.request.ChatRoomRequest;
45
import cmf.commitField.domain.chat.chatRoom.controller.request.ChatRoomUpdateRequest;
56
import cmf.commitField.domain.chat.chatRoom.dto.ChatRoomDto;
@@ -12,30 +13,45 @@
1213
import jakarta.validation.Valid;
1314
import lombok.RequiredArgsConstructor;
1415
import org.springframework.data.domain.Pageable;
16+
import org.springframework.http.MediaType;
1517
import org.springframework.security.core.Authentication;
1618
import org.springframework.security.core.annotation.AuthenticationPrincipal;
1719
import org.springframework.security.core.context.SecurityContextHolder;
1820
import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken;
1921
import org.springframework.web.bind.annotation.*;
2022

23+
import java.io.IOException;
2124
import java.util.List;
2225

2326
@RestController
2427
@RequiredArgsConstructor
2528
@RequestMapping("/chat")
2629
public class ChatRoomController {
2730
private final ChatRoomService chatRoomService;
31+
private final FileService fileService;
2832

29-
//채팅방 생성
30-
@PostMapping("/room")
33+
// 채팅방 생성 (파일 업로드 포함)
34+
@PostMapping(value = "/room", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
3135
public GlobalResponse<Object> createRoom(
32-
@RequestBody @Valid ChatRoomRequest chatRoomRequest) {
36+
@ModelAttribute @Valid ChatRoomRequest chatRoomRequest) throws IOException {
37+
38+
39+
// 인증 확인
3340
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
3441

3542
if (authentication instanceof OAuth2AuthenticationToken) {
3643
CustomOAuth2User principal = (CustomOAuth2User) authentication.getPrincipal();
3744
Long userId = principal.getId(); // getId()를 통해 userId를 추출
38-
chatRoomService.createRoom(chatRoomRequest, userId); // userId를 전달
45+
46+
// 파일 업로드 처리
47+
String imageUrl = null;
48+
if (chatRoomRequest.getFile() != null && !chatRoomRequest.getFile().isEmpty()) {
49+
imageUrl = fileService.saveFile(chatRoomRequest.getFile()); // 파일 저장
50+
}
51+
52+
// 채팅방 생성 서비스 호출 (이미지 URL 포함)
53+
chatRoomService.createRoom(chatRoomRequest, userId, imageUrl);
54+
3955
return GlobalResponse.success("채팅방을 생성하였습니다.");
4056
} else {
4157
throw new IllegalArgumentException("로그인 후에 이용해 주세요.");

src/main/java/cmf/commitField/domain/chat/chatRoom/controller/request/ChatRoomRequest.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
package cmf.commitField.domain.chat.chatRoom.controller.request;
22

33
import jakarta.validation.constraints.Max;
4-
import jakarta.validation.constraints.NotEmpty;
54
import jakarta.validation.constraints.NotNull;
65
import lombok.AllArgsConstructor;
76
import lombok.Getter;
87
import lombok.NoArgsConstructor;
8+
import lombok.Setter;
99
import org.hibernate.validator.constraints.Length;
10+
import org.springframework.web.multipart.MultipartFile;
1011

12+
@Setter
1113
@Getter
1214
@AllArgsConstructor
1315
@NoArgsConstructor
1416
public class ChatRoomRequest {
1517

16-
@NotEmpty
18+
@NotNull
1719
@Length(min = 2, max = 20)
1820
private String title;
1921

@@ -24,4 +26,10 @@ public class ChatRoomRequest {
2426
@Length(min = 4, max = 20)
2527
private String password;
2628

29+
private MultipartFile file; // 파일을 받기 위한 필드
30+
31+
public boolean isFileSizeValid() {
32+
return file == null || file.getSize() <= 5 * 1024 * 1024; // 5MB
33+
}
34+
2735
}

src/main/java/cmf/commitField/domain/chat/chatRoom/entity/ChatRoom.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ public class ChatRoom extends BaseEntity {
4545

4646
private Boolean isPrivate;
4747

48+
//채팅방 이미지 URL
49+
private String imageUrl;
50+
4851
@Override
4952
public String toString() {
5053
return "ChatRoom{" +

0 commit comments

Comments
 (0)