From 9977bbe66b3e72d17aebcac64d3a84da3dee850d Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Thu, 9 Apr 2026 21:16:55 -0400 Subject: [PATCH] feat(api): enhance reading progress interfaces and add fetch endpoint Update reading progress tracking on the frontend: - Add epubcfi and percentage fields to ReadingProgress interface - Add last_read_at timestamp for progress display - Implement getReadingProgress() function to fetch current progress - Export getReadingProgress for use in reader components These changes align the frontend API with the new backend progress schema and enable readers to retrieve saved position data. --- web/src/api.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/web/src/api.ts b/web/src/api.ts index bd9eb86..b3ea0af 100644 --- a/web/src/api.ts +++ b/web/src/api.ts @@ -103,6 +103,9 @@ interface Chapter { interface ReadingProgress { current_page: number; total_pages: number; + epubcfi?: string; + percentage?: number; + last_read_at: string; } async function getReaderMetadata(mediaItemId: string): Promise { const response = await apiGet(`/media-items/${mediaItemId}`); @@ -119,6 +122,18 @@ async function updateReadingProgress( await handleVoidResponse(response); } +async function getReadingProgress( + mediaItemId: string, +): Promise { + const response = await apiGet(`/media-items/${mediaItemId}/progress`); + + if (response.status === 404) { + return null; + } + + return handleResponse(response); +} + export { apiGet, apiPost, @@ -129,8 +144,8 @@ export { handleVoidResponse, handleError, getReaderMetadata, + getReadingProgress, // ADD THIS updateReadingProgress, - ReaderMetadata, ReadingProgress, ChapterMetadata, Chapter,