From 7e4c83edf656b3f351344574a58161436b97d44a Mon Sep 17 00:00:00 2001 From: doxxx93 Date: Wed, 21 Feb 2024 21:16:45 +0900 Subject: [PATCH] hotfix: timeline --- .../EaselTimelineServiceApplication.java | 4 +++- .../controller/TimelineController.java | 3 +++ .../service/PaintCacheService.java | 1 + .../easeltimelineservice/usecase/TimelineUsecase.java | 10 +++++++--- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/timeline-service/src/main/java/org/palette/easeltimelineservice/EaselTimelineServiceApplication.java b/src/timeline-service/src/main/java/org/palette/easeltimelineservice/EaselTimelineServiceApplication.java index df90441f..f10b5324 100644 --- a/src/timeline-service/src/main/java/org/palette/easeltimelineservice/EaselTimelineServiceApplication.java +++ b/src/timeline-service/src/main/java/org/palette/easeltimelineservice/EaselTimelineServiceApplication.java @@ -1,6 +1,7 @@ package org.palette.easeltimelineservice; import org.palette.aop.EaselAuthenticationContext; +import org.palette.aop.LoggingAspect; import org.palette.aop.PassportAspect; import org.palette.config.CommonModuleConfig; import org.palette.config.KafkaConsumerConfig; @@ -15,7 +16,8 @@ EaselAuthenticationContext.class, PassportAspect.class, KafkaConsumerConfig.class, - KafkaProducerConfig.class + KafkaProducerConfig.class, + LoggingAspect.class }) public class EaselTimelineServiceApplication { diff --git a/src/timeline-service/src/main/java/org/palette/easeltimelineservice/controller/TimelineController.java b/src/timeline-service/src/main/java/org/palette/easeltimelineservice/controller/TimelineController.java index 96c71895..4b32f9c9 100644 --- a/src/timeline-service/src/main/java/org/palette/easeltimelineservice/controller/TimelineController.java +++ b/src/timeline-service/src/main/java/org/palette/easeltimelineservice/controller/TimelineController.java @@ -3,6 +3,7 @@ import lombok.RequiredArgsConstructor; import org.palette.aop.EaselAuthenticationContext; import org.palette.aop.InjectEaselAuthentication; +import org.palette.aop.InternalErrorLogging; import org.palette.easeltimelineservice.service.PaintResponse; import org.palette.easeltimelineservice.usecase.TimelineUsecase; import org.springframework.http.ResponseEntity; @@ -19,6 +20,7 @@ public class TimelineController { @GetMapping("/following") @InjectEaselAuthentication + @InternalErrorLogging public ResponseEntity> getFollowingTimeline() { final Long userId = EaselAuthenticationContext.getUserInfo().id(); return ResponseEntity.ok(timelineUsecase.getFollowingTimeline(userId)); @@ -26,6 +28,7 @@ public ResponseEntity> getFollowingTimeline() { @GetMapping("/for-you") @InjectEaselAuthentication + @InternalErrorLogging public ResponseEntity> getForYouTimeline() { final Long userId = EaselAuthenticationContext.getUserInfo().id(); return ResponseEntity.ok(timelineUsecase.getForYouTimeline(userId)); diff --git a/src/timeline-service/src/main/java/org/palette/easeltimelineservice/service/PaintCacheService.java b/src/timeline-service/src/main/java/org/palette/easeltimelineservice/service/PaintCacheService.java index 373ceaae..9ede6277 100644 --- a/src/timeline-service/src/main/java/org/palette/easeltimelineservice/service/PaintCacheService.java +++ b/src/timeline-service/src/main/java/org/palette/easeltimelineservice/service/PaintCacheService.java @@ -34,6 +34,7 @@ public List getPaints(final List paintIds) { public List getRandomPaints() { return Optional.ofNullable(redistemplate.opsForSet().randomMembers(PAINT_PREFIX.getKey(), 200)) + .orElseGet(Collections::emptyList) .stream() .map(Paint.class::cast) .toList(); diff --git a/src/timeline-service/src/main/java/org/palette/easeltimelineservice/usecase/TimelineUsecase.java b/src/timeline-service/src/main/java/org/palette/easeltimelineservice/usecase/TimelineUsecase.java index bc2654cc..61c8867e 100644 --- a/src/timeline-service/src/main/java/org/palette/easeltimelineservice/usecase/TimelineUsecase.java +++ b/src/timeline-service/src/main/java/org/palette/easeltimelineservice/usecase/TimelineUsecase.java @@ -52,9 +52,13 @@ public void handleUnlikedPaintEvent(final UnlikedPaintEvent unlikedPaintEvent) { public List getForYouTimeline(final Long userId) { List paints = paintCacheService.getRandomPaints(); List paintIds = followerPaintMapService.getFollowingTimelinePaintIds(userId); - paints.removeIf(paint -> paintIds.contains(paint.getId())); - paints.removeIf(paint -> paint.getAuthorId().equals(userId)); - return paints.stream().map(paint -> { + + List filteredPaints = paints.stream() + .filter(paint -> !paintIds.contains(paint.getId())) + .filter(paint -> !paint.getAuthorId().equals(userId)) + .toList(); + + return filteredPaints.stream().map(paint -> { PaintMetrics metrics = paintMetricsService.getPaintMetrics(paint.getId()); return PaintResponse.of(paint, metrics); }