Skip to content

Commit d29e441

Browse files
committed
[FIX] 파라미터 null 값 허용
1 parent 3df31b8 commit d29e441

File tree

4 files changed

+29
-16
lines changed

4 files changed

+29
-16
lines changed

src/main/java/org/websoso/WSSServer/controller/FeedController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public ResponseEntity<FeedsGetResponse> getFeeds(@AuthenticationPrincipal User u
7171
@RequestParam(value = "category", required = false) String category,
7272
@RequestParam("lastFeedId") Long lastFeedId,
7373
@RequestParam("size") int size,
74-
@RequestParam("feedsOption") FeedGetOption feedGetOption) {
74+
@RequestParam(value = "feedsOption", required = false) FeedGetOption feedGetOption) {
7575
return ResponseEntity
7676
.status(OK)
7777
.body(feedService.getFeeds(user, category, lastFeedId, size, feedGetOption));

src/main/java/org/websoso/WSSServer/controller/UserController.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -164,10 +164,10 @@ public ResponseEntity<UserFeedsGetResponse> getUserFeeds(@AuthenticationPrincipa
164164
@PathVariable("userId") Long userId,
165165
@RequestParam("lastFeedId") Long lastFeedId,
166166
@RequestParam("size") int size,
167-
@RequestParam("isVisible") boolean isVisible,
168-
@RequestParam("isUnVisible") boolean isUnVisible,
169-
@RequestParam("genreNames") List<String> genreNames,
170-
@RequestParam("sortCriteria") SortCriteria sortCriteria) {
167+
@RequestParam(value = "isVisible", required = false) Boolean isVisible,
168+
@RequestParam(value = "isUnVisible", required = false) Boolean isUnVisible,
169+
@RequestParam(value = "genreNames", required = false) List<String> genreNames,
170+
@RequestParam(value = "sortCriteria", required = false) SortCriteria sortCriteria) {
171171
return ResponseEntity
172172
.status(OK)
173173
// ToDo: isVisible -> isPublic으로 수정

src/main/java/org/websoso/WSSServer/repository/FeedCustomRepositoryImpl.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public List<Feed> findFeedsByNoOffsetPagination(User owner, Long lastFeedId, int
6666
ltFeedId(lastFeedId),
6767
eqVisible(isVisible),
6868
eqUnVisible(isUnVisible),
69-
genre.in(genres)
69+
checkGenres(genres)
7070
)
7171
.orderBy(
7272
checkSortCriteria(sortCriteria),
@@ -95,16 +95,22 @@ private BooleanExpression ltFeedId(Long lastFeedId) {
9595
return feed.feedId.lt(lastFeedId);
9696
}
9797

98-
private BooleanExpression eqVisible(boolean isVisible) {
99-
return feed.isPublic.eq(isVisible);
98+
private BooleanExpression eqVisible(Boolean isVisible) {
99+
if (isVisible != null) {
100+
return feed.isPublic.eq(isVisible);
101+
}
102+
return null;
100103
}
101104

102-
private BooleanExpression eqUnVisible(boolean isUnVisible) {
103-
return feed.isPublic.eq(isUnVisible);
105+
private BooleanExpression eqUnVisible(Boolean isUnVisible) {
106+
if (isUnVisible != null) {
107+
return feed.isPublic.eq(isUnVisible);
108+
}
109+
return null;
104110
}
105111

106112
private OrderSpecifier<?> checkSortCriteria(SortCriteria sortCriteria) {
107-
if (sortCriteria.equals(SortCriteria.OLD)) {
113+
if (sortCriteria != null && sortCriteria.equals(SortCriteria.OLD)) {
108114
return new OrderSpecifier<>(Order.ASC, feed.createdDate);
109115
}
110116
return new OrderSpecifier<>(Order.DESC, feed.createdDate);

src/main/java/org/websoso/WSSServer/service/FeedService.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -447,18 +447,16 @@ public NovelGetResponseFeedTab getFeedsByNovel(User user, Long novelId, Long las
447447
}
448448

449449
@Transactional(readOnly = true)
450-
public UserFeedsGetResponse getUserFeeds(User visitor, Long ownerId, Long lastFeedId, int size, boolean isVisible,
451-
boolean isUnVisible, List<String> genreNames,
450+
public UserFeedsGetResponse getUserFeeds(User visitor, Long ownerId, Long lastFeedId, int size, Boolean isVisible,
451+
Boolean isUnVisible, List<String> genreNames,
452452
SortCriteria sortCriteria) {
453453
User owner = userService.getUserOrException(ownerId);
454454
Long visitorId = Optional.ofNullable(visitor)
455455
.map(User::getUserId)
456456
.orElse(null);
457457

458458
if (owner.getIsProfilePublic() || isOwner(visitor, ownerId)) {
459-
List<Genre> genres = genreNames.stream()
460-
.map(genreService::getGenreOrException)
461-
.toList();
459+
List<Genre> genres = getGenres(genreNames);
462460

463461
List<Feed> feeds = feedRepository.findFeedsByNoOffsetPagination(owner, lastFeedId, size, isVisible,
464462
isUnVisible, sortCriteria, genres);
@@ -493,4 +491,13 @@ private static boolean isOwner(User visitor, Long ownerId) {
493491
//TODO 현재는 비로그인 회원인 경우
494492
return visitor != null && visitor.getUserId().equals(ownerId);
495493
}
494+
495+
private List<Genre> getGenres(List<String> genreNames) {
496+
if (genreNames != null && !genreNames.isEmpty()) {
497+
return genreNames.stream()
498+
.map(genreService::getGenreOrException)
499+
.toList();
500+
}
501+
return null;
502+
}
496503
}

0 commit comments

Comments
 (0)