Skip to content

Commit 65b1321

Browse files
authored
Merge pull request #23 from KONKUK-MAP-Service/feat-spot
✔️ [Fix] : 장소조회시 반환 요청사항 수정 #23
2 parents f57514d + ee51792 commit 65b1321

File tree

5 files changed

+58
-9
lines changed

5 files changed

+58
-9
lines changed

src/main/java/com/cona/KUsukKusuk/global/security/LoginFilter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ protected void successfulAuthentication(HttpServletRequest request, HttpServletR
8383

8484
String password = customUserDetails.getPassword();
8585
//AT : 6분
86-
String accessToken = jwtUtil.createJwt(username, password, 60*60*1000L);
86+
String accessToken = jwtUtil.createJwt(username, password, 60*60*100L);
8787
//RT : 7일
8888
String refreshToken = jwtUtil.createRefreshToken(username, password, 86400000*7L);
8989

src/main/java/com/cona/KUsukKusuk/global/security/SecurityConfig.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,10 @@ public CorsConfiguration getCorsConfiguration(HttpServletRequest request) {
7878
//경로별 인가 작업
7979
http
8080
.authorizeHttpRequests((auth) -> auth
81-
.requestMatchers("/login", "/users/join","/health","/","/users/refresh").permitAll()
82-
.requestMatchers("/**").permitAll()
81+
.requestMatchers("/login", "/users/join","/health","/","/index.html","/users/refresh","/userinfo").permitAll()
82+
.requestMatchers("/users/logout").permitAll()
83+
.requestMatchers("/spot/**").permitAll()
84+
.requestMatchers("/users/find-password","/bookmark/add","/bookmark/delete").permitAll()
8385
.requestMatchers( "/swagger-ui/**", "/v3/api-docs/**").permitAll()
8486
//스웨거 접근권한 허용
8587
.anyRequest().authenticated());

src/main/java/com/cona/KUsukKusuk/spot/dto/SpotDetailResponse.java

+8-1
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,13 @@ public record SpotDetailResponse(Long spotId,
1111
List<String> images,
1212
String longitude,
1313
String latitude,
14+
String author,
15+
Boolean bookmark,
16+
Boolean like,
17+
1418
String review) {
1519

16-
public static SpotDetailResponse fromSpot(Spot spot) {
20+
public static SpotDetailResponse fromSpot(Spot spot,Boolean isBookmark, Boolean isLike) {
1721
return SpotDetailResponse.builder()
1822
.spotId(spot.getId())
1923

@@ -22,6 +26,9 @@ public static SpotDetailResponse fromSpot(Spot spot) {
2226
.longitude(spot.getLongitude())
2327
.latitude(spot.getLatitude())
2428
.review(spot.getReview())
29+
.author(spot.getUser().getNickname())
30+
.bookmark(isBookmark)
31+
.like(isLike)
2532
.build();
2633
}
2734

src/main/java/com/cona/KUsukKusuk/spot/dto/SpotGetResponse.java

+9-2
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,24 @@ public record SpotGetResponse(
1717
String longtitude,
1818
String latitude,
1919
String review,
20+
String author,
21+
Boolean bookmark,
22+
Boolean like,
23+
2024
LocalDateTime createDate
2125
) {
22-
public static SpotGetResponse of(Spot spot,Boolean bool) {
26+
public static SpotGetResponse of(Spot spot,Boolean isUsersOwnSpot,Boolean isBookmark,Boolean isLike) {
2327
return SpotGetResponse.builder()
2428
.spotId(spot.getId())
25-
.isUsersOwnSpot(bool)
29+
.isUsersOwnSpot(isUsersOwnSpot)
2630
.spotName(spot.getSpotName())
2731
.images(spot.getImageUrls())
2832
.longtitude(spot.getLongitude())
2933
.latitude(spot.getLatitude())
3034
.review(spot.getReview())
35+
.author(spot.getUser().getNickname())
36+
.bookmark(isBookmark)
37+
.like(isLike)
3138
.createDate(spot.getCreatedDate())
3239
.build();
3340
}

src/main/java/com/cona/KUsukKusuk/spot/service/SpotService.java

+36-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
package com.cona.KUsukKusuk.spot.service;
22

3+
import com.cona.KUsukKusuk.bookmark.domain.Bookmark;
4+
import com.cona.KUsukKusuk.bookmark.repository.BookmarkRepository;
35
import com.cona.KUsukKusuk.global.exception.HttpExceptionCode;
46
import com.cona.KUsukKusuk.global.response.HttpResponse;
57
import com.cona.KUsukKusuk.global.s3.S3Service;
8+
import com.cona.KUsukKusuk.like.UserLike;
9+
import com.cona.KUsukKusuk.like.repository.UserLikeRepository;
610
import com.cona.KUsukKusuk.spot.domain.Spot;
711
import com.cona.KUsukKusuk.spot.dto.SpotDetailResponse;
812
import com.cona.KUsukKusuk.spot.dto.SpotGetResponse;
@@ -37,6 +41,8 @@ public class SpotService {
3741
private final SpotRepository spotRepository;
3842
private final UserService userService;
3943
private final UserRepository userRepository;
44+
private final BookmarkRepository bookmarkRepository;
45+
private final UserLikeRepository userLikeRepository;
4046
private final S3Service s3Service;
4147

4248

@@ -68,25 +74,52 @@ public Spot uploadSpot(List<MultipartFile> images, SpotUploadRequest spotUploadR
6874
public List<SpotGetResponse> getAllSpots() {
6975
String userId = userService.getUsernameBySecurityContext();
7076
User user = userService.findUserByUserid(userId);
77+
List<Bookmark> bookmarks = bookmarkRepository.findByUser(user);
78+
List<UserLike> userLikes = userLikeRepository.findByUser(user);
7179

7280
List<Spot> spots = spotRepository.findAll();
7381
return spots.stream()
74-
.map(spot -> SpotGetResponse.of(spot, spot.getUser().equals(user)))
82+
.map(spot -> {
83+
boolean isBookmarkedByUser = bookmarks != null && bookmarks.stream()
84+
.anyMatch(bookmark -> bookmark.getSpot().equals(spot));
85+
boolean isLikedByUser = userLikes != null && userLikes.stream()
86+
.anyMatch(like -> like.getSpot().equals(spot));
87+
return SpotGetResponse.of(spot, spot.getUser().equals(user), isBookmarkedByUser, isLikedByUser);
88+
})
7589
.collect(Collectors.toList());
7690
}
7791
public SpotDetailResponse getSpotDetails(Long spotId) {
92+
String username = SecurityContextHolder.getContext().getAuthentication()
93+
.getName();
94+
95+
Boolean isBookmark=false;
96+
Boolean isLike=true;
7897

7998
Spot spot = spotRepository.findById(spotId)
8099
.orElseThrow(() -> new SpotNotFoundException());
81100

101+
if (!username.equals("anonymousUser")) {
102+
103+
User user = userService.findUserByUserid(username);
104+
List<UserLike> userLikes = userLikeRepository.findByUser(user);
105+
List<Bookmark> bookmarks = bookmarkRepository.findByUser(user);
106+
107+
isLike = userLikes != null && userLikes.stream().anyMatch(like -> like.getSpot().equals(spot));
108+
109+
isBookmark = bookmarks != null && bookmarks.stream().anyMatch(bookmark -> bookmark.getSpot().equals(spot));
110+
111+
}
112+
113+
114+
82115
boolean isUsersOwnSpot = spot.getUser().getId().equals(false);
83-
return SpotDetailResponse.fromSpot(spot);
116+
return SpotDetailResponse.fromSpot(spot,isBookmark,isLike);
84117
}
85118
public List<SpotGetResponse> getAllPublicSpots() {
86119

87120
List<Spot> spots = spotRepository.findAll();
88121
return spots.stream()
89-
.map(spot -> SpotGetResponse.of(spot, false))
122+
.map(spot -> SpotGetResponse.of(spot, false,false,false))
90123
.collect(Collectors.toList());
91124
}
92125
public Spot updateSpot(Long spotId,List<MultipartFile> images, SpotUpdateRequest spotUpdateRequest) throws IOException {

0 commit comments

Comments
 (0)