diff --git a/packages/api/src/resolvers/article/index.ts b/packages/api/src/resolvers/article/index.ts index 5b55a6d19..7671116be 100644 --- a/packages/api/src/resolvers/article/index.ts +++ b/packages/api/src/resolvers/article/index.ts @@ -437,11 +437,19 @@ export const getArticleResolver: ResolverFn< // We allow the backend to use the ID instead of a slug to fetch the article const page = (await getPageByParam( - { userId: claims.uid, slug }, + { + userId: claims.uid, + slug, + state: ArticleSavingRequestStatus.Succeeded, + }, includeOriginalHtml )) || (await getPageByParam( - { userId: claims.uid, _id: slug }, + { + userId: claims.uid, + _id: slug, + state: ArticleSavingRequestStatus.Succeeded, + }, includeOriginalHtml )) @@ -643,10 +651,16 @@ export const setBookmarkArticleResolver = authorized< return { errorCodes: [SetBookmarkArticleErrorCode.NotFound] } } - // delete the page + // delete the page and its metadata const deleted = await updatePage( pageRemoved.id, - { state: ArticleSavingRequestStatus.Deleted }, + { + state: ArticleSavingRequestStatus.Deleted, + labels: [], + highlights: [], + readingProgressAnchorIndex: 0, + readingProgressPercent: 0, + }, { pubsub, uid } ) if (!deleted) { diff --git a/packages/api/test/resolvers/article.test.ts b/packages/api/test/resolvers/article.test.ts index 54fe8dc02..440b8107b 100644 --- a/packages/api/test/resolvers/article.test.ts +++ b/packages/api/test/resolvers/article.test.ts @@ -688,6 +688,7 @@ describe('Article API', () => { await graphqlRequest(query, authToken).expect(200) const page = await getPageById(articleId) expect(page?.state).to.eql(ArticleSavingRequestStatus.Deleted) + expect(page?.highlights).to.eql([]) }) }) })