Skip to content

Commit e1d02a3

Browse files
authored
[FIX] 회원정보 자동 로딩으로 수정
2 parents 1a5a11d + 2ffc9b6 commit e1d02a3

7 files changed

Lines changed: 50 additions & 75 deletions

File tree

src/main/java/com/example/FixLog/controller/MainPageController.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.example.FixLog.controller;
22

33
import com.example.FixLog.dto.Response;
4-
import com.example.FixLog.dto.UserIdDto;
54
import com.example.FixLog.dto.main.MainPageResponseDto;
65
import com.example.FixLog.service.MainPageService;
76
import org.springframework.web.bind.annotation.*;
@@ -16,15 +15,15 @@ public MainPageController(MainPageService mainPageService){
1615
}
1716

1817
@GetMapping
19-
public Response<Object> mainPageView(@RequestParam("sort") int sort, @RequestBody UserIdDto userIddto){
20-
MainPageResponseDto mainPageView = mainPageService.mainPageView(sort, userIddto);
18+
public Response<Object> mainPageView(@RequestParam("sort") int sort){
19+
MainPageResponseDto mainPageView = mainPageService.mainPageView(sort);
2120
return Response.success("메인페이지 불러오기 성공", mainPageView);
2221
}
2322

2423
@GetMapping("/full")
25-
public Response<Object> mainPageFullView(@RequestParam("sort") int sort, @RequestParam("page") int page,
26-
@RequestBody UserIdDto userIddto){
27-
MainPageResponseDto mainPageFullView = mainPageService.mainPageFullView(sort, page, userIddto);
24+
public Response<Object> mainPageFullView(@RequestParam("sort") int sort,
25+
@RequestParam("page") int page){
26+
MainPageResponseDto mainPageFullView = mainPageService.mainPageFullView(sort, page);
2827
return Response.success("메인페이지 전체보기 성공", mainPageFullView);
2928
}
3029
}

src/main/java/com/example/FixLog/controller/PostController.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.example.FixLog.controller;
22

3-
import com.example.FixLog.dto.UserIdDto;
43
import com.example.FixLog.dto.post.PostRequestDto;
54
import com.example.FixLog.dto.Response;
65
import com.example.FixLog.dto.post.PostResponseDto;
@@ -23,23 +22,20 @@ public Response<Object> createPost(@RequestBody PostRequestDto postRequestDto){
2322
}
2423

2524
@GetMapping("/{postId}")
26-
public Response<Object> viewPost(@PathVariable("postId") Long postId,
27-
@RequestBody UserIdDto userIdDto){
28-
PostResponseDto viewPost = postService.viewPost(postId, userIdDto);
25+
public Response<Object> viewPost(@PathVariable("postId") Long postId){
26+
PostResponseDto viewPost = postService.viewPost(postId);
2927
return Response.success("게시글 조회하기 성공", viewPost);
3028
}
3129

3230
@PostMapping("/{postId}/like")
33-
public Response<Object> togglePostLike(@PathVariable("postId") Long postId,
34-
@RequestBody UserIdDto userIdDto){
35-
String message = postService.togglePostLike(postId, userIdDto);
31+
public Response<Object> togglePostLike(@PathVariable("postId") Long postId){
32+
String message = postService.togglePostLike(postId);
3633
return Response.success(message, null); // 좋아요 수정하기
3734
}
3835

3936
@PostMapping("/{postId}/bookmark")
40-
public Response<Object> toggleBookmark(@PathVariable("postId") Long postId,
41-
@RequestBody UserIdDto userIdDto) {
42-
String message = postService.toggleBookmark(postId, userIdDto);
37+
public Response<Object> toggleBookmark(@PathVariable("postId") Long postId) {
38+
String message = postService.toggleBookmark(postId);
4339
return Response.success(message, null); // 북마크 수정하기
4440
}
4541
}

src/main/java/com/example/FixLog/dto/UserIdDto.java

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/main/java/com/example/FixLog/dto/post/PostRequestDto.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
@Getter
88
public class PostRequestDto {
9-
private Long userId; // Fixme : 회원가입 구현 후 삭제 예정
109
private String postTitle;
1110
private String coverImageUrl;
1211
private String problem;
@@ -19,7 +18,4 @@ public class PostRequestDto {
1918
private String extraContent;
2019

2120
private List<Long> tags;
22-
23-
// private List<String> postImageUrl;
24-
// private List<String> tags;
2521
}

src/main/java/com/example/FixLog/service/MainPageService.java

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22

33
import com.example.FixLog.domain.member.Member;
44
import com.example.FixLog.domain.post.Post;
5-
import com.example.FixLog.dto.UserIdDto;
65
import com.example.FixLog.dto.main.MainPagePostResponseDto;
76
import com.example.FixLog.dto.main.MainPageResponseDto;
87
import com.example.FixLog.exception.CustomException;
98
import com.example.FixLog.exception.ErrorCode;
10-
import com.example.FixLog.repository.MemberRepository;
119
import com.example.FixLog.repository.post.PostRepository;
1210
import org.springframework.data.domain.Page;
1311
import org.springframework.data.domain.PageRequest;
@@ -19,20 +17,13 @@
1917

2018
@Service
2119
public class MainPageService {
22-
private final MemberRepository memberRepository;
2320
private final PostRepository postRepository;
21+
private final MemberService memberService;
2422

25-
public MainPageService(MemberRepository memberRepository, PostRepository postRepository) {
26-
this.memberRepository = memberRepository;
23+
public MainPageService(PostRepository postRepository, MemberService memberService) {
2724
this.postRepository = postRepository;
2825
}
2926

30-
// 회원 정보 불러오기
31-
public Member getMemberOrThrow(Long userId) {
32-
return memberRepository.findById(userId)
33-
.orElseThrow(() -> new CustomException(ErrorCode.USER_NICKNAME_NOT_FOUND));
34-
}
35-
3627
// 이미지 null일 때 default 사진으로 변경 (프로필 사진,
3728
public String getDefaultImage(String image){
3829
String imageUrl = (image == null || image.isBlank())
@@ -42,9 +33,9 @@ public String getDefaultImage(String image){
4233
}
4334

4435
// 메인페이지 보기
45-
public MainPageResponseDto mainPageView(int sort, UserIdDto userIddto){
36+
public MainPageResponseDto mainPageView(int sort){
4637
// 사용자 정보 불러오기
47-
Member member = getMemberOrThrow(userIddto.getUserId());
38+
Member member = memberService.getCurrentMemberInfo();
4839
String imageUrl = member.getProfileImageUrl();
4940
String profileImageUrl = getDefaultImage(imageUrl);
5041

@@ -76,9 +67,9 @@ public MainPageResponseDto mainPageView(int sort, UserIdDto userIddto){
7667
}
7768

7869
// 메인페이지 전체보기
79-
public MainPageResponseDto mainPageFullView(int sort, int page, UserIdDto userIddto){
70+
public MainPageResponseDto mainPageFullView(int sort, int page){
8071
// 사용자 정보 불러오기
81-
Member member = getMemberOrThrow(userIddto.getUserId());
72+
Member member = memberService.getCurrentMemberInfo();
8273
String imageUrl = member.getProfileImageUrl();
8374
String profileImageUrl = getDefaultImage(imageUrl);
8475

src/main/java/com/example/FixLog/service/MemberService.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import com.example.FixLog.repository.MemberRepository;
1010
import com.example.FixLog.repository.bookmark.BookmarkFolderRepository;
1111
import lombok.RequiredArgsConstructor;
12+
import org.springframework.security.core.Authentication;
13+
import org.springframework.security.core.context.SecurityContextHolder;
1214
import org.springframework.security.crypto.password.PasswordEncoder;
1315
import org.springframework.stereotype.Service;
1416

@@ -47,7 +49,6 @@ public void signup(SignupRequestDto request) {
4749
BookmarkFolder newFolder = new BookmarkFolder(member);
4850
bookmarkFolderRepository.save(newFolder);
4951

50-
5152
}
5253

5354
public boolean isEmailDuplicated(String email) {
@@ -57,7 +58,15 @@ public boolean isEmailDuplicated(String email) {
5758
public boolean isNicknameDuplicated(String nickname) {
5859
return memberRepository.findByNickname(nickname).isPresent();
5960
}
60-
61+
62+
// 현재 로그인한 사용자 정보 member 객체로 반환
63+
public Member getCurrentMemberInfo(){
64+
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
65+
String userEmail = authentication.getName();
66+
return memberRepository.findByEmail(userEmail)
67+
.orElseThrow(() -> new CustomException(ErrorCode.USER_EMAIL_NOT_FOUND));
68+
}
69+
6170
// 회원탈퇴
6271
public void withdraw(Member member) {
6372
member.setIsDeleted(true);

src/main/java/com/example/FixLog/service/PostService.java

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,11 @@
77
import com.example.FixLog.domain.post.Post;
88
import com.example.FixLog.domain.post.PostTag;
99
import com.example.FixLog.domain.tag.Tag;
10-
import com.example.FixLog.dto.UserIdDto;
1110
import com.example.FixLog.dto.post.PostDto;
1211
import com.example.FixLog.dto.post.PostRequestDto;
1312
import com.example.FixLog.dto.post.PostResponseDto;
1413
import com.example.FixLog.exception.CustomException;
1514
import com.example.FixLog.exception.ErrorCode;
16-
import com.example.FixLog.repository.MemberRepository;
1715
import com.example.FixLog.repository.bookmark.BookmarkFolderRepository;
1816
import com.example.FixLog.repository.bookmark.BookmarkRepository;
1917
import com.example.FixLog.repository.like.PostLikeRepository;
@@ -31,27 +29,21 @@
3129
@Service
3230
public class PostService {
3331
private final PostRepository postRepository;
34-
private final MemberRepository memberRepository;
3532
private final PostLikeRepository postLikeRepository;
3633
private final BookmarkRepository bookmarkRepository;
3734
private final TagRepository tagRepository;
3835
private final BookmarkFolderRepository bookmarkFolderRepository;
36+
private final MemberService memberService;
3937

40-
public PostService(PostRepository postRepository, MemberRepository memberRepository,
41-
PostLikeRepository postLikeRepository, BookmarkRepository bookmarkRepository,
42-
TagRepository tagRepository, BookmarkFolderRepository bookmarkFolderRepository){
38+
public PostService(PostRepository postRepository, PostLikeRepository postLikeRepository,
39+
BookmarkRepository bookmarkRepository, TagRepository tagRepository,
40+
BookmarkFolderRepository bookmarkFolderRepository, MemberService memberService){
4341
this.postRepository = postRepository;
44-
this.memberRepository = memberRepository;
4542
this.postLikeRepository = postLikeRepository;
4643
this.bookmarkRepository = bookmarkRepository;
4744
this.tagRepository = tagRepository;
4845
this.bookmarkFolderRepository = bookmarkFolderRepository;
49-
}
50-
51-
// 회원 정보 불러오기
52-
public Member getMemberOrThrow(Long userId) {
53-
return memberRepository.findById(userId)
54-
.orElseThrow(() -> new CustomException(ErrorCode.USER_NICKNAME_NOT_FOUND));
46+
this.memberService = memberService;
5547
}
5648

5749
// 이미지 null일 때 default 사진으로 변경 (프로필 사진,
@@ -65,7 +57,7 @@ public String getDefaultImage(String image){
6557
// 게시글 생성하기
6658
@Transactional
6759
public void createPost(PostRequestDto postRequestDto){
68-
Member member = getMemberOrThrow(postRequestDto.getUserId());
60+
Member member = memberService.getCurrentMemberInfo();
6961

7062
String coverImageUrl = postRequestDto.getCoverImageUrl();
7163

@@ -101,15 +93,15 @@ public void createPost(PostRequestDto postRequestDto){
10193
}
10294

10395
// 게시글 조회하기
104-
public PostResponseDto viewPost(Long postId, UserIdDto userIdDto){
105-
Member userId = getMemberOrThrow(userIdDto.getUserId());
96+
public PostResponseDto viewPost(Long postId){
97+
Member member = memberService.getCurrentMemberInfo();
10698

10799
Post currentPost = postRepository.findById(postId)
108100
.orElseThrow(() -> new CustomException(ErrorCode.POST_NOT_FOUND));
109101

110102
PostDto postInfo = new PostDto(
111103
currentPost.getPostTitle(),
112-
currentPost.getCoverImage(),
104+
getDefaultImage(currentPost.getCoverImage()),
113105
currentPost.getProblem(),
114106
currentPost.getErrorMessage(),
115107
currentPost.getEnvironment(),
@@ -123,52 +115,52 @@ public PostResponseDto viewPost(Long postId, UserIdDto userIdDto){
123115
.collect(Collectors.toList())
124116
);
125117

126-
String nickname = userId.getNickname();
118+
String nickname = member.getNickname();
127119
LocalDate createdAt = currentPost.getCreatedAt().toLocalDate();
128120
boolean isLiked = currentPost.getPostLikes().stream()
129-
.anyMatch(postLike -> postLike.getUserId().equals(userId));
121+
.anyMatch(postLike -> postLike.getUserId().equals(member));
130122
boolean isMarked = currentPost.getBookmarks().stream()
131-
.anyMatch(bookmark -> bookmark.getFolderId().getUserId().equals(userId));
123+
.anyMatch(bookmark -> bookmark.getFolderId().getUserId().equals(member));
132124

133125
return new PostResponseDto(postInfo, nickname, createdAt, isLiked, isMarked);
134126
}
135127

136128
// 게시글 좋아요
137-
public String togglePostLike(Long postIdInput, UserIdDto userIdDto){
138-
Member userId = getMemberOrThrow(userIdDto.getUserId());
129+
public String togglePostLike(Long postIdInput){
130+
Member member = memberService.getCurrentMemberInfo();
139131

140132
Post postId = postRepository.findById(postIdInput)
141133
.orElseThrow(() -> new CustomException(ErrorCode.POST_NOT_FOUND));
142134

143-
Optional<PostLike> optionalLike = postLikeRepository.findByUserIdAndPostId(userId, postId);
135+
Optional<PostLike> optionalLike = postLikeRepository.findByUserIdAndPostId(member, postId);
144136

145137
if (optionalLike.isEmpty()){ // 객체 없는 경우
146-
PostLike newLike = new PostLike(userId, postId);
138+
PostLike newLike = new PostLike(member, postId);
147139
postLikeRepository.save(newLike);
148140
return "게시글 좋아요 성공";
149141
} else { // 객체 있는 경우
150142
PostLike postLike = optionalLike.get();
151143
postLike.ToggleLike(!postLike.isLiked());
152144
postLikeRepository.save(postLike);
153-
if (postLike.isLiked() == true)
145+
if (postLike.isLiked())
154146
return "게시글 좋아요 성공";
155147
else
156148
return "게시글 좋아요 삭제 성공";
157149
}
158150
}
159151

160152
// 게시글 북마크
161-
public String toggleBookmark(Long postIdInput, UserIdDto userIdDto){
162-
Member userId = getMemberOrThrow(userIdDto.getUserId());
153+
public String toggleBookmark(Long postIdInput){
154+
Member member = memberService.getCurrentMemberInfo();
163155

164156
Post postId = postRepository.findById(postIdInput)
165157
.orElseThrow(() -> new CustomException(ErrorCode.POST_NOT_FOUND));
166158

167-
BookmarkFolder folderId = bookmarkFolderRepository.findByUserId(userId); // 이 코드는 폴더가 하나일 때만 적용됨
159+
BookmarkFolder folderId = bookmarkFolderRepository.findByUserId(member); // 이 코드는 폴더가 하나일 때만 적용됨
168160
Optional<Bookmark> optionalBookmark = bookmarkRepository.findByFolderIdAndPostId(folderId, postId);
169161

170162
// 본인 글은 북마크 못하도록
171-
if (userId == folderId.getUserId())
163+
if (member == folderId.getUserId())
172164
throw new CustomException(ErrorCode.SELF_BOOKMARK_NOT_ALLOWED);
173165

174166
// 북마크 처리
@@ -181,7 +173,7 @@ public String toggleBookmark(Long postIdInput, UserIdDto userIdDto){
181173
bookmark.ToggleBookmark(!bookmark.isMarked());
182174
bookmarkRepository.save(bookmark);
183175
System.out.println(bookmark.isMarked());
184-
return (bookmark.isMarked() == true) ? "게시글 북마크 성공" : "게시글 북마크 삭제 성공";
176+
return (bookmark.isMarked()) ? "게시글 북마크 성공" : "게시글 북마크 삭제 성공";
185177
}
186178
}
187179
}

0 commit comments

Comments
 (0)