Skip to content

Commit 244895c

Browse files
committed
fix(mainpage) : #75 - 로그인 없이 메인페이지 볼 수 있게
1 parent 7ca20be commit 244895c

2 files changed

Lines changed: 31 additions & 7 deletions

File tree

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

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.springframework.stereotype.Service;
1515

1616
import java.util.List;
17+
import java.util.Optional;
1718
import java.util.stream.Collectors;
1819

1920
@Service
@@ -37,9 +38,16 @@ public String getDefaultImage(String image){
3738
// 메인페이지 보기
3839
public MainPageResponseDto mainPageView(int sort, int size){
3940
// 사용자 정보 불러오기
40-
Member member = memberService.getCurrentMemberInfo();
41-
String imageUrl = member.getProfileImageUrl();
42-
String profileImageUrl = getDefaultImage(imageUrl);
41+
Optional<Member> optionalMember = memberService.getCurrentOptionalMemberInfo();
42+
String profileImageUrl;
43+
44+
if (optionalMember.isPresent()) {
45+
Member member = optionalMember.get();
46+
String imageUrl = member.getProfileImageUrl();
47+
profileImageUrl = getDefaultImage(imageUrl);
48+
} else {
49+
profileImageUrl = "https://example.com/default-cover-image.png"; // 비로그인 기본 이미지
50+
}
4351

4452
// 페이지 (글 12개) 불러오기
4553
Page<Post> posts;
@@ -48,6 +56,7 @@ public MainPageResponseDto mainPageView(int sort, int size){
4856
if (sort == 0) { // 최신순 정렬
4957
sortOption = Sort.by(Sort.Direction.DESC, "createdAt");
5058
} else if (sort == 1) { // 인기순 정렬
59+
// Todo : 이거 정렬할 때 좋아요 0인거 이상하고, 이거랑 연결해서인지 totalpages 계산도 이상하게 됨
5160
sortOption = Sort.by(Sort.Direction.DESC, "postLikes");
5261
} else
5362
throw new CustomException(ErrorCode.SORT_NOT_EXIST);
@@ -75,9 +84,16 @@ public MainPageResponseDto mainPageView(int sort, int size){
7584
// 메인페이지 전체보기
7685
public MainPageResponseDto mainPageFullView(int sort, int page, int size){
7786
// 사용자 정보 불러오기
78-
Member member = memberService.getCurrentMemberInfo();
79-
String imageUrl = member.getProfileImageUrl();
80-
String profileImageUrl = getDefaultImage(imageUrl);
87+
Optional<Member> optionalMember = memberService.getCurrentOptionalMemberInfo();
88+
String profileImageUrl;
89+
90+
if (optionalMember.isPresent()) {
91+
Member member = optionalMember.get();
92+
String imageUrl = member.getProfileImageUrl();
93+
profileImageUrl = getDefaultImage(imageUrl);
94+
} else {
95+
profileImageUrl = "https://example.com/default-cover-image.png"; // 비로그인 기본 이미지
96+
}
8197

8298
// 페이지 설정 (한 페이지당 12개)
8399
Pageable pageable = PageRequest.of(page - 1, size);

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,22 @@ public void signup(SignupRequestDto request) {
5757
* 현재 로그인한 사용자 조회
5858
*/
5959
@Transactional(readOnly = true)
60-
public Member getCurrentMemberInfo() {
60+
public Member getCurrentMemberInfo() { // 예외 처리 O
6161
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
6262
String email = authentication.getName();
6363

6464
return memberRepository.findByEmail(email)
6565
.orElseThrow(() -> new CustomException(ErrorCode.USER_EMAIL_NOT_FOUND));
6666
}
6767

68+
@Transactional(readOnly = true)
69+
public Optional<Member> getCurrentOptionalMemberInfo() { // 예외 처리 X
70+
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
71+
String email = authentication.getName();
72+
73+
return memberRepository.findByEmail(email);
74+
}
75+
6876
/**
6977
* 닉네임 수정
7078
*/

0 commit comments

Comments
 (0)