From 40182421f740be4d6542c3b53762949cae8a80db Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Thu, 20 Jun 2024 16:31:05 +0800 Subject: [PATCH] show archived highlights --- .../api/src/resolvers/function_resolvers.ts | 11 ++++++-- packages/api/src/services/highlights.ts | 1 - packages/api/src/services/library_item.ts | 27 ++++--------------- 3 files changed, 14 insertions(+), 25 deletions(-) diff --git a/packages/api/src/resolvers/function_resolvers.ts b/packages/api/src/resolvers/function_resolvers.ts index a406ae707..67624303a 100644 --- a/packages/api/src/resolvers/function_resolvers.ts +++ b/packages/api/src/resolvers/function_resolvers.ts @@ -6,7 +6,7 @@ import { createHmac } from 'crypto' import { isError } from 'lodash' import { Highlight } from '../entity/highlight' -import { LibraryItem } from '../entity/library_item' +import { LibraryItem, LibraryItemState } from '../entity/library_item' import { EXISTING_NEWSLETTER_FOLDER, NewsletterEmail, @@ -634,7 +634,14 @@ export const functionResolvers = { const libraryItems = ( await ctx.dataLoaders.libraryItems.loadMany(libraryItemIds) ).filter( - (libraryItem) => !!libraryItem && !isError(libraryItem) + (libraryItem) => + !!libraryItem && + !isError(libraryItem) && + [ + LibraryItemState.Succeeded, + LibraryItemState.ContentNotFetched, + ].includes(libraryItem.state) && + !libraryItem.seenAt ) as Array const publicItemIds = section.items diff --git a/packages/api/src/services/highlights.ts b/packages/api/src/services/highlights.ts index 327038aca..533d29eb2 100644 --- a/packages/api/src/services/highlights.ts +++ b/packages/api/src/services/highlights.ts @@ -26,7 +26,6 @@ export const batchGetHighlightsFromLibraryItemIds = async ( const highlights = await authTrx(async (tx) => tx.getRepository(Highlight).find({ where: { libraryItem: { id: In(libraryItemIds as string[]) } }, - relations: ['user'], }) ) diff --git a/packages/api/src/services/library_item.ts b/packages/api/src/services/library_item.ts index 4ed0136a6..4eee6af0c 100644 --- a/packages/api/src/services/library_item.ts +++ b/packages/api/src/services/library_item.ts @@ -6,7 +6,6 @@ import { EntityManager, FindOptionsWhere, In, - IsNull, ObjectLiteral, } from 'typeorm' import { QueryDeepPartialEntity } from 'typeorm/query-builder/QueryPartialEntity' @@ -135,31 +134,15 @@ export enum SortBy { const readingProgressDataSource = new ReadingProgressDataSource() export const batchGetLibraryItems = async (ids: readonly string[]) => { - const selectColumns: Array = [ - 'id', - 'title', - 'author', - 'thumbnail', - 'wordCount', - 'savedAt', - 'originalUrl', - 'directionality', - 'description', - 'subscription', - 'siteName', - 'siteIcon', - 'archivedAt', - 'deletedAt', - 'slug', - 'previewContent', - ] + // select all columns except content + const select = getColumns(libraryItemRepository).filter( + (select) => ['originalContent', 'readableContent'].indexOf(select) === -1 + ) const items = await authTrx(async (tx) => tx.getRepository(LibraryItem).find({ - select: selectColumns, + select, where: { id: In(ids as string[]), - state: LibraryItemState.Succeeded, - seenAt: IsNull(), }, }) )