From af037a283756dec319d99f61d99d284b15051474 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Thu, 17 Mar 2022 10:06:21 +0800 Subject: [PATCH] make readingProgress required in the elastic page data (#253) * make readingProgress required in the elastic page data * delete readingProgress from function_resolvers because we have stored them in elastic --- packages/api/src/elastic/index.ts | 1 + packages/api/src/elastic/types.ts | 4 +- packages/api/src/resolvers/article/index.ts | 2 + .../api/src/resolvers/function_resolvers.ts | 41 ------------------- .../api/src/routers/svc/pdf_attachments.ts | 2 + packages/api/src/services/save_email.ts | 2 + packages/api/src/services/save_file.ts | 2 + packages/api/src/services/save_page.ts | 2 + packages/api/test/resolvers/article.test.ts | 2 + packages/api/test/util.ts | 2 + 10 files changed, 17 insertions(+), 43 deletions(-) diff --git a/packages/api/src/elastic/index.ts b/packages/api/src/elastic/index.ts index 3e361039b..72ae06b6e 100644 --- a/packages/api/src/elastic/index.ts +++ b/packages/api/src/elastic/index.ts @@ -166,6 +166,7 @@ export const createPage = async ( ...page, updatedAt: new Date(), createdAt: new Date(), + savedAt: new Date(), }, refresh: ctx.refresh, }) diff --git a/packages/api/src/elastic/types.ts b/packages/api/src/elastic/types.ts index 5b2649546..72e56adbb 100644 --- a/packages/api/src/elastic/types.ts +++ b/packages/api/src/elastic/types.ts @@ -132,8 +132,8 @@ export interface Page { originalHtml?: string | null slug: string labels?: Label[] - readingProgressPercent?: number - readingProgressAnchorIndex?: number + readingProgressPercent: number + readingProgressAnchorIndex: number createdAt: Date updatedAt?: Date publishedAt?: Date diff --git a/packages/api/src/resolvers/article/index.ts b/packages/api/src/resolvers/article/index.ts index 16ec4633a..71b372a0f 100644 --- a/packages/api/src/resolvers/article/index.ts +++ b/packages/api/src/resolvers/article/index.ts @@ -272,6 +272,8 @@ export const createArticleResolver = authorized< createdAt: saveTime, savedAt: saveTime, siteName: parsedContent?.siteName, + readingProgressPercent: 0, + readingProgressAnchorIndex: 0, } let archive = false diff --git a/packages/api/src/resolvers/function_resolvers.ts b/packages/api/src/resolvers/function_resolvers.ts index 16e86de0e..1ee95e46c 100644 --- a/packages/api/src/resolvers/function_resolvers.ts +++ b/packages/api/src/resolvers/function_resolvers.ts @@ -386,47 +386,6 @@ export const functionResolvers = { ? ContentReader.Pdf : ContentReader.Web }, - async readingProgressPercent( - article: { id: string; readingProgressPercent?: number }, - _: unknown, - ctx: WithDataSourcesContext & { claims: Claims } - ) { - // != used here to check for null or undefined - if (article.readingProgressPercent != null) { - return article.readingProgressPercent - } - console.log( - 'looking up reading progress for article', - article.id, - article - ) - return ( - ( - await getPageByParam({ - userId: ctx.claims.uid, - _id: article.id, - }) - )?.readingProgressPercent || 0 - ) - }, - async readingProgressAnchorIndex( - article: { id: string; readingProgressAnchorIndex?: number }, - _: unknown, - ctx: WithDataSourcesContext & { claims: Claims } - ) { - // != used here to check for null or undefined - if (article.readingProgressAnchorIndex != null) { - return article.readingProgressAnchorIndex - } - return ( - ( - await getPageByParam({ - userId: ctx.claims.uid, - _id: article.id, - }) - )?.readingProgressAnchorIndex || 0 - ) - }, async highlights( article: { id: string; userId?: string }, _: { input: ArticleHighlightsInput }, diff --git a/packages/api/src/routers/svc/pdf_attachments.ts b/packages/api/src/routers/svc/pdf_attachments.ts index 262a7ae9d..ba672a5b2 100644 --- a/packages/api/src/routers/svc/pdf_attachments.ts +++ b/packages/api/src/routers/svc/pdf_attachments.ts @@ -155,6 +155,8 @@ export function pdfAttachmentsRouter() { slug: generateSlug(title), id: '', createdAt: new Date(), + readingProgressPercent: 0, + readingProgressAnchorIndex: 0, } const pageId = await createPage(articleToSave, { diff --git a/packages/api/src/services/save_email.ts b/packages/api/src/services/save_email.ts index 8d3799843..590d983d9 100644 --- a/packages/api/src/services/save_email.ts +++ b/packages/api/src/services/save_email.ts @@ -63,6 +63,8 @@ export const saveEmail = async ( publishedAt: validatedDate(parseResult.parsedContent?.publishedDate), slug: slug, createdAt: new Date(), + readingProgressAnchorIndex: 0, + readingProgressPercent: 0, } const page = await getPageByParam({ url: articleToSave.url }) diff --git a/packages/api/src/services/save_file.ts b/packages/api/src/services/save_file.ts index 15a8ba49e..592cdd064 100644 --- a/packages/api/src/services/save_file.ts +++ b/packages/api/src/services/save_file.ts @@ -106,6 +106,8 @@ export const saveFile = async ( userId: saver.id, id: '', createdAt: new Date(), + readingProgressPercent: 0, + readingProgressAnchorIndex: 0, }, ctx ) diff --git a/packages/api/src/services/save_page.ts b/packages/api/src/services/save_page.ts index 8672b1958..fb97d0fd6 100644 --- a/packages/api/src/services/save_page.ts +++ b/packages/api/src/services/save_page.ts @@ -101,6 +101,8 @@ export const savePage = async ( image: parseResult.parsedContent?.previewImage, publishedAt: validatedDate(parseResult.parsedContent?.publishedDate), createdAt: new Date(), + readingProgressPercent: 0, + readingProgressAnchorIndex: 0, } const existingPage = await getPageByParam({ diff --git a/packages/api/test/resolvers/article.test.ts b/packages/api/test/resolvers/article.test.ts index 5b43de707..33e3bee77 100644 --- a/packages/api/test/resolvers/article.test.ts +++ b/packages/api/test/resolvers/article.test.ts @@ -571,6 +571,8 @@ describe('Article API', () => { createdAt: new Date(), url: 'https://blog.omnivore.app/setBookmarkArticle', slug: 'test-with-omnivore', + readingProgressPercent: 0, + readingProgressAnchorIndex: 0, } const newPageId = await createPage(page, ctx) if (newPageId) { diff --git a/packages/api/test/util.ts b/packages/api/test/util.ts index 95c53eebf..e3a84dac9 100644 --- a/packages/api/test/util.ts +++ b/packages/api/test/util.ts @@ -50,6 +50,8 @@ export const createTestElasticPage = async ( url: 'https://example.com/test-url', slug: 'test-with-omnivore', labels: labels, + readingProgressPercent: 0, + readingProgressAnchorIndex: 0, } const pageId = await createPage(page, {