Skip to content

Commit b09880e

Browse files
authored
Merge pull request #87 from Konkuk-KUIT/86-last-dance
fix: Separation isRead
2 parents 95268d3 + c56cb34 commit b09880e

3 files changed

Lines changed: 11 additions & 45 deletions

File tree

src/main/java/com/archiveat/server/domain/newsletter/controller/NewsletterController.java

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,37 +28,23 @@ public ApiResponse<DeleteNewsletterResponse> deleteNewsletter(
2828
return ApiResponse.ok(deleteNewsletterResponse); // 204
2929
}
3030

31-
/**
32-
* AI 요약 상세 조회
33-
*
34-
* @param autoMarkRead true(기본값): 컴렉션/탐색 탭에서 자동 읽음 처리, false: 홈 탭에서 버튼 클릭 시만 처리
35-
*/
3631
@GetMapping("/{userNewsletterId}")
3732
public ApiResponse<ViewNewsletterResponse> viewNewsletter(
3833
@PathVariable Long userNewsletterId,
39-
@AuthenticationPrincipal Long userId,
40-
@RequestParam(defaultValue = "true") boolean autoMarkRead) {
34+
@AuthenticationPrincipal Long userId) {
4135
ViewNewsletterResponse viewNewsletterResponse = newsletterService.viewUserNewsletter(
4236
userId,
43-
userNewsletterId,
44-
autoMarkRead);
37+
userNewsletterId);
4538
return ApiResponse.ok(viewNewsletterResponse);
4639
}
4740

48-
/**
49-
* Simple 상세 조회
50-
*
51-
* @param autoMarkRead true(기본값): 컴렉션/탐색 탭에서 자동 읽음 처리, false: 홈 탭에서 버튼 클릭 시만 처리
52-
*/
5341
@GetMapping("/{userNewsletterId}/simple")
5442
public ApiResponse<SimpleViewNewsletterResponse> simpleViewNewsletter(
5543
@PathVariable Long userNewsletterId,
56-
@AuthenticationPrincipal Long userId,
57-
@RequestParam(defaultValue = "true") boolean autoMarkRead) {
44+
@AuthenticationPrincipal Long userId) {
5845
SimpleViewNewsletterResponse simpleViewNewsletterResponse = newsletterService.simpleViewUserNewsletter(
5946
userId,
60-
userNewsletterId,
61-
autoMarkRead);
47+
userNewsletterId);
6248
return ApiResponse.ok(simpleViewNewsletterResponse);
6349
}
6450

src/main/java/com/archiveat/server/domain/newsletter/service/NewsletterService.java

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -90,21 +90,11 @@ public DeleteNewsletterResponse deleteUserNewsletter(Long userId, Long userNewsl
9090
* 뉴스레터 AI 요약 상세 조회
9191
*/
9292
@Transactional
93-
public ViewNewsletterResponse viewUserNewsletter(Long userId, Long userNewsletterId, boolean autoMarkRead) {
93+
public ViewNewsletterResponse viewUserNewsletter(Long userId, Long userNewsletterId) {
9494
UserNewsletter userNewsletter = userNewsletterRepository
9595
.findByIdAndUser_Id(userNewsletterId, userId)
9696
.orElseThrow(() -> new CustomException(ErrorCode.USER_NEWSLETTER_NOT_FOUND));
9797

98-
if (autoMarkRead) {
99-
if (!userNewsletter.isRead())
100-
userNewsletter.updateIsRead();
101-
else
102-
userNewsletter.updateLastViewedAt();
103-
} else {
104-
userNewsletter.updateLastViewedAt();
105-
}
106-
userNewsletterRepository.save(userNewsletter);
107-
10898
Newsletter newsletter = userNewsletter.getNewsletter();
10999
List<NewsletterSummaryBlock> summaryBlocks = parseNewsletterSummary(newsletter.getNewsletterSummary());
110100

@@ -155,20 +145,12 @@ private List<NewsletterSummaryBlock> parseNewsletterSummary(String newsletterSum
155145
* 뉴스레터 Simple 상세 조회
156146
*/
157147
@Transactional
158-
public SimpleViewNewsletterResponse simpleViewUserNewsletter(Long userId, Long userNewsletterId,
159-
boolean autoMarkRead) {
148+
public SimpleViewNewsletterResponse simpleViewUserNewsletter(Long userId, Long userNewsletterId) {
160149
UserNewsletter userNewsletter = userNewsletterRepository
161150
.findByIdAndUser_Id(userNewsletterId, userId)
162151
.orElseThrow(() -> new CustomException(ErrorCode.USER_NEWSLETTER_NOT_FOUND));
163152

164-
if (autoMarkRead) {
165-
if (!userNewsletter.isRead())
166-
userNewsletter.updateIsRead();
167-
else
168-
userNewsletter.updateLastViewedAt();
169-
} else {
170-
userNewsletter.updateLastViewedAt();
171-
}
153+
userNewsletter.updateIsRead();
172154
userNewsletterRepository.save(userNewsletter);
173155

174156
Newsletter newsletter = userNewsletter.getNewsletter();

src/test/java/com/archiveat/server/domain/newsletter/service/NewsletterServiceTest.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,7 @@ void simpleViewUserNewsletter_ReturnsFirstSummaryBlock() throws Exception {
6363

6464
// when
6565
SimpleViewNewsletterResponse response = newsletterService.simpleViewUserNewsletter(userId,
66-
userNewsletterId,
67-
true);
66+
userNewsletterId);
6867

6968
// then
7069
assertThat(response.newsletterSimpleSummary()).hasSize(1);
@@ -100,8 +99,7 @@ void simpleViewUserNewsletter_ReturnsEmptyList_WhenSummaryIsEmpty() throws Excep
10099

101100
// when
102101
SimpleViewNewsletterResponse response = newsletterService.simpleViewUserNewsletter(userId,
103-
userNewsletterId,
104-
true);
102+
userNewsletterId);
105103

106104
// then
107105
assertThat(response.newsletterSimpleSummary()).isEmpty();
@@ -135,7 +133,7 @@ void viewUserNewsletter_ShouldReturnPersonalizedClassification() {
135133
given(userTopic.getName()).willReturn("PersonalizedTopic");
136134

137135
// when
138-
ViewNewsletterResponse response = newsletterService.viewUserNewsletter(userId, userNewsletterId, false);
136+
ViewNewsletterResponse response = newsletterService.viewUserNewsletter(userId, userNewsletterId);
139137

140138
// then
141139
assertThat(response.categoryName()).isEqualTo("PersonalizedCategory");
@@ -168,7 +166,7 @@ void viewUserNewsletter_ShouldFallbackToOriginalClassification() {
168166
given(newsletter.getTopic()).willReturn("OriginalTopic");
169167

170168
// when
171-
ViewNewsletterResponse response = newsletterService.viewUserNewsletter(userId, userNewsletterId, false);
169+
ViewNewsletterResponse response = newsletterService.viewUserNewsletter(userId, userNewsletterId);
172170

173171
// then
174172
assertThat(response.categoryName()).isEqualTo("OriginalCategory");

0 commit comments

Comments
 (0)