From b4e95a3cc17281cef669655d8dc05cf63b12ca11 Mon Sep 17 00:00:00 2001 From: astrodad Date: Tue, 12 Aug 2025 16:42:51 -0400 Subject: [PATCH] Feature/update date finished integration (#895) * Fixed issue with not updating the book finished date when updating read status * Added ability to set a date finished after setting the book status to Read. --------- Co-authored-by: Aditya Chandel <8075870+adityachandelgit@users.noreply.github.com> --- .../booklore/model/dto/request/ReadProgressRequest.java | 2 +- .../java/com/adityachandel/booklore/service/BookService.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/booklore-api/src/main/java/com/adityachandel/booklore/model/dto/request/ReadProgressRequest.java b/booklore-api/src/main/java/com/adityachandel/booklore/model/dto/request/ReadProgressRequest.java index e367b1179..fb49141ba 100644 --- a/booklore-api/src/main/java/com/adityachandel/booklore/model/dto/request/ReadProgressRequest.java +++ b/booklore-api/src/main/java/com/adityachandel/booklore/model/dto/request/ReadProgressRequest.java @@ -19,6 +19,6 @@ public class ReadProgressRequest { @AssertTrue(message = "At least one progress field must be provided") public boolean isProgressValid() { - return epubProgress != null || pdfProgress != null || cbxProgress != null; + return epubProgress != null || pdfProgress != null || cbxProgress != null || dateFinished != null; } } diff --git a/booklore-api/src/main/java/com/adityachandel/booklore/service/BookService.java b/booklore-api/src/main/java/com/adityachandel/booklore/service/BookService.java index 4215d7e4d..1eb9a02f7 100644 --- a/booklore-api/src/main/java/com/adityachandel/booklore/service/BookService.java +++ b/booklore-api/src/main/java/com/adityachandel/booklore/service/BookService.java @@ -312,9 +312,12 @@ public class BookService { userBookProgress.setCbxProgress(request.getCbxProgress().getPage()); userBookProgress.setCbxProgressPercent(request.getCbxProgress().getPercentage()); } + + // Update dateFinished if provided if (request.getDateFinished() != null) { userBookProgress.setDateFinished(request.getDateFinished()); } + userBookProgressRepository.save(userBookProgress); }