From bdf01ddaab8da23d54087183578d6950c804c5c0 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 31 Jan 2024 14:15:29 +0800 Subject: [PATCH] Clear cache on force, return updated read position values --- packages/api/src/resolvers/article/index.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/api/src/resolvers/article/index.ts b/packages/api/src/resolvers/article/index.ts index 2b95913f8..116af997f 100644 --- a/packages/api/src/resolvers/article/index.ts +++ b/packages/api/src/resolvers/article/index.ts @@ -112,6 +112,7 @@ import { parsePreparedContent, } from '../../utils/parser' import { getStorageFileDetails } from '../../utils/uploads' +import { clearCachedReadingPosition } from '../../services/cached_reading_position' export enum ArticleFormat { Markdown = 'markdown', @@ -621,7 +622,10 @@ export const saveArticleReadingProgressResolver = authorized< } try { if (force) { - // update reading progress without checking the current value + // update reading progress without checking the current value, also + // clear any cached values. + await clearCachedReadingPosition(uid, id) + const updatedItem = await updateLibraryItem( id, { @@ -660,6 +664,17 @@ export const saveArticleReadingProgressResolver = authorized< undefined, uid ) + if (updatedItem) { + updatedItem.readAt = new Date() + updatedItem.readingProgressBottomPercent = readingProgressPercent + if (readingProgressTopPercent) { + updatedItem.readingProgressTopPercent = readingProgressTopPercent + } + if (readingProgressAnchorIndex) { + updatedItem.readingProgressLastReadAnchor = + readingProgressAnchorIndex + } + } } else { // update reading progress only if the current value is lower updatedItem = await updateLibraryItemReadingProgress(